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

17
วิธีแก้ไข“ พยายามนำเข้าที่เกี่ยวข้องในแพ็คเกจที่ไม่ใช่” แม้จะมี __init__.py
ฉันพยายามติดตามPEP 328ด้วยโครงสร้างไดเรกทอรีต่อไปนี้: pkg/ __init__.py components/ core.py __init__.py tests/ core_test.py __init__.py ในcore_test.pyฉันมีคำสั่งการนำเข้าต่อไปนี้ from ..components.core import GameLoopEvents อย่างไรก็ตามเมื่อฉันเรียกใช้ฉันได้รับข้อผิดพลาดต่อไปนี้: tests$ python core_test.py Traceback (most recent call last): File "core_test.py", line 3, in <module> from ..components.core import GameLoopEvents ValueError: Attempted relative import in non-package การค้นหารอบ ๆ ฉันพบ " เส้นทางสัมพัทธ์ไม่ทำงานแม้จะมี __init__.py " และ " นำเข้าโมดูลจากเส้นทางสัมพัทธ์ …

9
ฟังก์ชัน init () ทำงานเมื่อใด
ฉันพยายามค้นหาคำอธิบายที่แม่นยำเกี่ยวกับสิ่งที่init()ฟังก์ชั่นทำใน Go ฉันอ่านสิ่งที่Effective Goพูด แต่ฉันไม่แน่ใจถ้าฉันเข้าใจอย่างเต็มที่ในสิ่งที่พูด ประโยคที่แน่นอนที่ฉันไม่แน่ใจคือต่อไปนี้: และในที่สุดก็หมายความว่าในที่สุด: init ถูกเรียกหลังจากการประกาศตัวแปรทั้งหมดในแพ็คเกจได้ประเมินค่า initializers ของพวกเขาและสิ่งเหล่านั้นจะได้รับการประเมินหลังจากแพคเกจที่นำเข้าทั้งหมดได้รับการเริ่มต้น อะไรall the variable declarations in the package have evaluated their initializersหมายถึง? หมายความว่าหากคุณประกาศตัวแปร "ทั่วโลก" ในแพ็คเกจและไฟล์ของ init () จะไม่ทำงานจนกว่าจะได้รับการประเมินทั้งหมดและจากนั้นจะเรียกใช้ฟังก์ชัน init ทั้งหมดแล้วตามด้วย main () เมื่อเรียกใช้ไฟล์. main_file_name ฉันยังอ่านหนังสือ Go Mark's Summer ต่อไปนี้: หากแพ็กเกจมีฟังก์ชัน init () หนึ่งรายการหรือมากกว่านั้นจะถูกดำเนินการโดยอัตโนมัติก่อนที่จะเรียกใช้ฟังก์ชัน main () ของแพ็คเกจหลัก ในความเข้าใจของฉันinit()มีความเกี่ยวข้องเฉพาะเมื่อคุณตั้งใจจะรัน main () ใช่ไหม …
356 go  init 

9
ใน Objective-C เหตุใดฉันจึงควรตรวจสอบว่าตนเอง = [super init] ไม่ใช่ศูนย์หรือไม่?
ฉันมีคำถามทั่วไปเกี่ยวกับการเขียนวิธีการเริ่มต้นใน Objective-C ฉันเห็นมันทุกหนทุกแห่ง (รหัสของ Apple หนังสือรหัสโอเพนซอร์สและอื่น ๆ ) ว่าวิธีการเริ่มต้นควรตรวจสอบว่าตัวเอง = [super init] ไม่ได้เป็นศูนย์ก่อนที่จะดำเนินการเริ่มต้นต่อไป แม่แบบ Apple เริ่มต้นสำหรับวิธีการเริ่มต้นคือ: - (id) init { self = [super init]; if (self != nil) { // your code here } return self; } ทำไม? ฉันหมายความว่าเมื่อ init จะกลับมาเป็นศูนย์ได้อย่างไร ถ้าฉันโทรหา init บน NSObject แล้วกลับมาว่างเปล่าบางอย่างก็ต้องเมาแน่ ๆ ใช่มั้ย และในกรณีนี้คุณอาจไม่เขียนโปรแกรม ... …
165 objective-c  null  init 

4
ฉันสามารถใช้ __init__.py เพื่อกำหนดตัวแปรส่วนกลางได้หรือไม่
ฉันต้องการกำหนดค่าคงที่ที่ควรมีอยู่ในโมดูลย่อยทั้งหมดของแพ็กเกจ ฉันคิดว่าตำแหน่งที่ดีที่สุดจะอยู่ใน__init__.pyไฟล์ของแพ็คเกจรูท แต่ฉันไม่รู้ว่าต้องทำอย่างไร สมมติว่าฉันมีแพ็กเกจย่อยสองสามแพ็กเกจและแต่ละแพ็กเกจมีหลายโมดูล ฉันจะเข้าถึงตัวแปรนั้นจากโมดูลเหล่านี้ได้อย่างไร แน่นอนว่าหากสิ่งนี้ผิดโดยสิ้นเชิงและมีทางเลือกอื่นที่ดีกว่าฉันก็อยากจะรู้

4
git เพิ่มทั้งหมดยกเว้นไม่สนใจไฟล์ในไฟล์. gitignore
ฉันกำลังเพิ่มการควบคุมแหล่งที่มาให้กับโปรเจ็กต์ที่ไม่มีเลย ปัญหาคือมีไฟล์จำนวนมากที่จะเพิ่มลงใน git ด้วยไฟล์. gitignoreในตอนแรกแต่ฉันไม่สามารถหาวิธีเพิ่มไฟล์ทั้งหมดได้โดยไม่รวมไฟล์ที่ตรงกับบางอย่างในไฟล์. gitignore git add * คำสั่งดังกล่าวจะไม่เพิ่มไฟล์ใด ๆ เพราะตรวจพบไฟล์ที่ถูกละเลยโดย.gitignore git add -f * คำสั่งดังกล่าวจะเพิ่มไฟล์ทั้งหมดรวมถึงไฟล์ที่ฉันต้องการละเว้น ดังนั้นฉันจะเพิ่มไฟล์ทั้งหมดในขณะที่ยังยึดติดกับไฟล์. gitignore ได้อย่างไร
120 git  init  gitignore 

10
วิธีคืนค่าจาก __init__ ใน Python
ฉันมีคลาสที่มี__init__ฟังก์ชัน ฉันจะคืนค่าจำนวนเต็มจากฟังก์ชันนี้เมื่อสร้างวัตถุได้อย่างไร ฉันเขียนโปรแกรมโดยที่__init__จะแยกวิเคราะห์บรรทัดคำสั่งและฉันต้องตั้งค่าบางอย่าง ตกลงตั้งค่าเป็นตัวแปรส่วนกลางและใช้ในฟังก์ชันสมาชิกอื่น ๆ หรือไม่ ถ้าเป็นเช่นนั้นจะทำอย่างไร? จนถึงตอนนี้ฉันได้ประกาศตัวแปรนอกคลาส และการตั้งค่าให้ฟังก์ชันหนึ่งไม่สะท้อนในฟังก์ชันอื่น ??
105 python  class  init 

4
วิธีการสืบทอดและการเริ่มต้นใน Python
ฉันขอทานงูหลาม ฉันไม่เข้าใจเรื่องมรดกและ__init__(). class Num: def __init__(self,num): self.n1 = num class Num2(Num): def show(self): print self.n1 mynumber = Num2(8) mynumber.show() ผลลัพธ์: 8 ตกลง แต่ฉันแทนที่Num2ด้วย class Num2(Num): def __init__(self,num): self.n2 = num*2 def show(self): print self.n1,self.n2 ผลลัพธ์: Error. Num2 has no attribute "n1". ในกรณีนี้สามารถNum2เข้าถึงได้n1อย่างไร?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.