คำถามติดแท็ก typing

4
ฉันจะระบุได้อย่างไรว่าชนิดการคืนค่าของเมธอดนั้นเหมือนกับคลาสของตัวเอง?
ฉันมีรหัสต่อไปนี้ในหลาม 3: class Position: def __init__(self, x: int, y: int): self.x = x self.y = y def __add__(self, other: Position) -> Position: return Position(self.x + other.x, self.y + other.y) แต่บรรณาธิการของฉัน (PyCharm) บอกว่าตำแหน่งอ้างอิงไม่สามารถแก้ไขได้ (ใน__add__วิธีการ) ฉันจะระบุได้อย่างไรว่าฉันต้องการประเภทการส่งคืนเป็นประเภทPositionใด แก้ไข: ฉันคิดว่านี่เป็นปัญหา PyCharm จริง ๆ แล้วมันใช้ข้อมูลในการเตือนและการทำให้โค้ดเสร็จสมบูรณ์ แต่แก้ไขให้ฉันถ้าฉันผิดและจำเป็นต้องใช้ไวยากรณ์อื่น ๆ

9
"ไม่พิมพ์" หมายถึง "พิมพ์แบบไดนามิก" ในโลกวิชาการ CS หรือไม่
ฉันกำลังอ่านสำรับภาพนิ่งที่ระบุว่า "ไม่ได้พิมพ์ JavaScript" สิ่งนี้ขัดแย้งกับสิ่งที่ฉันคิดว่าเป็นจริงดังนั้นฉันจึงเริ่มขุดเพื่อลองและเรียนรู้เพิ่มเติม ทุกคำตอบของJavaScript เป็นภาษาที่ไม่ได้พิมพ์หรือไม่ บอกว่า JavaScript ไม่ได้ถูกพิมพ์และนำเสนอตัวอย่างของรูปแบบต่างๆของการพิมพ์คงที่แบบไดนามิกที่แข็งแกร่งและอ่อนแอที่ฉันคุ้นเคยและมีความสุขกับ .. ดังนั้นจึงไม่ใช่วิธีที่จะไป ดังนั้นฉันจึงถามเบรนแดนเอชผู้สร้าง JavaScript และเขาพูดว่า: ประเภทวิชาการใช้ "untyped" เพื่อหมายถึง "ไม่มีประเภทคงที่" พวกเขาฉลาดพอที่จะเห็นว่าค่ามีประเภท (duh!) บริบทของเรื่อง กลุ่มวิทยาการคอมพิวเตอร์ที่มุ่งเน้นด้านวิชาการใช้ "untyped" เป็นคำพ้องความหมายของ "การพิมพ์แบบไดนามิก" (และนี่ถูกต้องหรือไม่?) หรือมีบางสิ่งที่ลึกซึ้งกว่านี้ที่ฉันหายไป? ฉันเห็นด้วยกับเบรนแดนว่าบริบทมีความสำคัญ แต่การอ้างอิงใด ๆ ของคำอธิบายจะดีมากเพราะหนังสือ "ไปที่" ปัจจุบันของฉันไม่ได้เล่นบอลในหัวข้อนี้ ฉันต้องการทำสิ่งนี้ลงเพื่อให้ฉันสามารถปรับปรุงความเข้าใจของฉันและเพราะแม้แต่ Wikipedia ก็ไม่ได้อ้างถึงการใช้ทางเลือกนี้ (ที่ฉันสามารถหาได้) ฉันไม่ต้องการยุ่งกับการใช้คำหรือถามถึงการใช้คำในอนาคตถ้าฉันผิด :-) (ฉันเคยเห็น Smalltalker อันดับต้น ๆ บอกว่า Smalltalk ก็คือ "ไม่พิมพ์" เช่นกันดังนั้นมันจึงไม่ใช่ครั้งเดียวซึ่งเป็นสิ่งที่ทำให้ฉันออกจากภารกิจนี้! :-))

3
พิมพ์คำอธิบายประกอบสำหรับ * args และ ** kwargs
ฉันกำลังลองใช้คำอธิบายประกอบชนิดของ Python พร้อมคลาสเบสที่เป็นนามธรรมเพื่อเขียนอินเตอร์เฟส มีวิธีการอธิบายประเภทที่เป็นไปได้*argsและ**kwargs? ตัวอย่างเช่นเราจะแสดงให้เห็นว่าข้อโต้แย้งที่สมเหตุสมผลกับฟังก์ชั่นนั้นเป็นได้intหรือintไม่? type(args)ให้Tupleเดาว่าฉันจะอธิบายชนิดเป็นUnion[Tuple[int, int], Tuple[int]]แต่ไม่ได้ผล from typing import Union, Tuple def foo(*args: Union[Tuple[int, int], Tuple[int]]): try: i, j = args return i + j except ValueError: assert len(args) == 1 i = args[0] return i # ok print(foo((1,))) print(foo((1, 2))) # mypy does not like this print(foo(1)) …

2
มีวิธี "แยก" ประเภทของคุณสมบัติอินเตอร์เฟส TypeScript หรือไม่?
สมมติว่ามีไฟล์พิมพ์สำหรับไลบรารี X ซึ่งมีอินเทอร์เฟซบางอย่าง interface I1 { x: any; } interface I2 { y: { a: I1, b: I1, c: I1 } z: any } ในการทำงานกับไลบรารีนี้ฉันต้องส่งผ่านวัตถุที่เป็นประเภทเดียวกันกับI2.y. แน่นอนฉันสามารถสร้างอินเทอร์เฟซที่เหมือนกันในไฟล์ต้นฉบับของฉัน: interface MyInterface { a: I1, b: I1, c: I1 } let myVar: MyInterface; แต่แล้วฉันก็ได้รับภาระในการอัปเดตให้เป็นปัจจุบันจากไลบรารียิ่งไปกว่านั้นอาจมีขนาดใหญ่มากและส่งผลให้มีการทำซ้ำรหัสจำนวนมาก ดังนั้นมีวิธีใดบ้างที่จะ "แยก" คุณสมบัติเฉพาะของอินเทอร์เฟซประเภทนี้ออกมา สิ่งที่คล้ายกับlet myVar: typeof I2.y(ซึ่งใช้ไม่ได้ผลและทำให้เกิดข้อผิดพลาด "ไม่พบชื่อ I2") ขอบคุณล่วงหน้า. …

5
ผู้ใช้เป็นกลุ่มคุณวางมือขวาไว้ที่ไหน [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ผู้ใช้ที่เป็นกลุ่มมานานคุณใช้นิ้วของคุณค้างไว้jkl;หรือhjklอยู่ในโหมดปกติ? การพิมพ์แบบสัมผัสมาตรฐานสอนให้เราตำแหน่งที่บ้านสำหรับทางขวามือมีนิ้วชี้บนที่สำคัญเพื่อให้นิ้วมือของคุณอยู่ในjjkl; hjklแต่กุญแจที่เป็นกลุ่มเคลื่อนไหวมาตรฐาน ฉันกลับมาเป็นกลุ่มหลังจาก 10 ปีขึ้นไป(โอ้ฉันแก่แล้วเมื่อฉันไม่ได้ให้ความสนใจ)และพบว่าตัวเองมีความมุ่งมั่นไปที่hjkl... แต่นั่นทำให้การพิมพ์ตัวอักษรขวาบนวงเล็บปีกกา ฯลฯ ยากขึ้น ชอบฝึกตัวเองให้ใช้วิธีที่มีประสิทธิภาพ / ได้ผลดีที่สุดตอนนี้แทนที่จะต้องฝึกใหม่ในภายหลัง ผู้ใช้กลุ่มที่ไม่ยอมใครง่ายๆมานานแนวทางปฏิบัติที่ดีที่สุดคืออะไร? บันทึก: ทับซ้อนกันมากขึ้นกับTouch typists นำทางใน vi ได้อย่างไร? ฉันคิดว่าสิ่งนี้ผ่านการทดสอบ "อัตนัย" เพราะมันเกี่ยวกับการปลูกฝังแนวปฏิบัติที่ดีที่สุดโดยไม่รู้ตัวโดยเจตนาไม่ใช่แค่เรื่องความชอบของผู้คนเท่านั้น

12
การพิมพ์ Dvorak เหมาะสำหรับการเขียนโปรแกรมหรือไม่? [ปิด]
ตามที่กล่าวไว้ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันมักจะมองหาวิธีที่จะทำให้มีประสิทธิผลมากขึ้นและฉันได้อ่านมากเกี่ยวกับการพิมพ์โดยใช้แป้นพิมพ์Dvorak ดูเหมือนว่าสิ่งนี้จะมีประสิทธิผลมากกว่าสำหรับการเขียนร้อยแก้วปกติ แต่สำหรับการเขียนโปรแกรมล่ะ? ฉันไม่แน่ใจว่ามันจะมีประสิทธิภาพเนื่องจากการใช้อัฒภาคโคลอนวงเล็บและเครื่องหมายแอมเพอร์แซนด์เป็นเรื่องปกติในการเขียนโปรแกรมมากกว่าที่ใช้ในการพิมพ์ทุกวัน มีใครมีประสบการณ์เกี่ยวกับเรื่องนี้บ้าง?
113 typing  dvorak 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.