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

แผนกย่อยเชิงตรรกะของระบบที่ใหญ่และซับซ้อนกว่า

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

7
มรดกทับทิมเทียบกับมิกซ์อิน
ใน Ruby เนื่องจากคุณสามารถรวมมิกซ์อินได้หลายรายการ แต่ขยายได้เพียงคลาสเดียวดูเหมือนว่ามิกซ์อินจะเป็นที่ต้องการมากกว่าการสืบทอด คำถามของฉัน: ถ้าคุณกำลังเขียนโค้ดที่ต้องขยาย / รวมเพื่อเป็นประโยชน์ทำไมคุณถึงทำให้มันเป็นคลาสล่ะ? หรือพูดอีกอย่างทำไมคุณไม่ทำให้มันเป็นโมดูลเสมอไปล่ะ? ฉันคิดได้เพียงเหตุผลเดียวว่าทำไมคุณถึงต้องการชั้นเรียนและนั่นคือถ้าคุณต้องการสร้างอินสแตนซ์ของชั้นเรียน อย่างไรก็ตามในกรณีของ ActiveRecord :: Base คุณจะไม่สร้างอินสแตนซ์โดยตรง มันไม่ควรเป็นโมดูลแทนหรือ?

8
__getattr__ บนโมดูล
จะใช้การเทียบเท่า__getattr__กับคลาสบนโมดูลได้อย่างไร? ตัวอย่าง เมื่อเรียกใช้ฟังก์ชันที่ไม่มีอยู่ในแอตทริบิวต์ที่กำหนดแบบคงที่ของโมดูลฉันต้องการสร้างอินสแตนซ์ของคลาสในโมดูลนั้นและเรียกใช้เมธอดบนฟังก์ชันด้วยชื่อเดียวกับที่ล้มเหลวในการค้นหาแอ็ตทริบิวต์บนโมดูล class A(object): def salutation(self, accusative): print "hello", accusative # note this function is intentionally on the module, and not the class above def __getattr__(mod, name): return getattr(A(), name) if __name__ == "__main__": # i hope here to have my __getattr__ function above invoked, since # salutation does …

13
วิธีใดที่เข้ากันได้มากที่สุดในการติดตั้งโมดูล Python บนเครื่อง Mac
ฉันเริ่มเรียนรู้งูหลามและรักมัน ฉันทำงานบน Mac เป็นหลักเช่นเดียวกับ Linux ฉันพบว่าบน Linux (Ubuntu 9.04 ส่วนใหญ่) เมื่อฉันติดตั้งโมดูล python โดยใช้ apt-get มันใช้งานได้ดี ฉันสามารถนำเข้าได้โดยไม่มีปัญหา บน Mac ฉันคุ้นเคยกับการใช้ Macports เพื่อติดตั้งอุปกรณ์ Unixy ทั้งหมด อย่างไรก็ตามฉันพบว่าโมดูล python ส่วนใหญ่ที่ฉันติดตั้งด้วย python นั้นไม่สามารถมองเห็นได้ ฉันใช้เวลาเล่นกับการตั้งค่า PATH และใช้ python_select ไม่มีอะไรได้ผลจริง ๆ และ ณ จุดนี้ฉันไม่เข้าใจจริงๆฉันแค่พูดเล่น ๆ ฉันรู้สึกว่า Macports ไม่ได้รับความนิยมอย่างกว้างขวางในการจัดการโมดูลหลาม ฉันต้องการเริ่มต้นใหม่โดยใช้แนวทางที่ "ยอมรับ" มากขึ้น (ถ้าเป็นคำที่ถูกต้อง) ดังนั้นฉันจึงสงสัยว่าวิธีที่นักพัฒนา Mac python ใช้จัดการโมดูลของพวกเขาคืออะไร? คำถามโบนัส: …

12
จะสร้างตัวแปรข้ามโมดูลได้อย่างไร?
__debug__ตัวแปรเป็นประโยชน์ส่วนหนึ่งเป็นเพราะมันมีผลต่อทุกโมดูล หากฉันต้องการสร้างตัวแปรอื่นที่ทำงานในลักษณะเดียวกันฉันจะทำอย่างไร ตัวแปร (ขอให้เป็นต้นฉบับและเรียกว่า 'foo') ไม่จำเป็นต้องเป็นทั่วโลกอย่างแท้จริงในแง่ที่ว่าถ้าฉันเปลี่ยน foo ในโมดูลเดียวตัวแปรนั้นจะถูกอัปเดตในโมดูลอื่น ฉันจะดีถ้าฉันสามารถตั้งค่า foo ก่อนที่จะนำเข้าโมดูลอื่น ๆ จากนั้นพวกเขาจะเห็นค่าเดียวกันสำหรับมัน
122 python  module  global 

7
ตรวจสอบเวอร์ชันโมดูล Python ที่รันไทม์
โมดูล Python ของบุคคลที่สามจำนวนมากมีแอตทริบิวต์ที่เก็บข้อมูลเวอร์ชันสำหรับโมดูล (โดยปกติจะมีลักษณะคล้ายmodule.VERSIONหรือmodule.__version__) แต่บางโมดูลไม่มี ตัวอย่างเฉพาะของโมดูลดังกล่าว ได้แก่ libxslt และ libxml2 ฉันต้องการตรวจสอบว่าเวอร์ชันที่ถูกต้องของโมดูลเหล่านี้กำลังใช้งานอยู่ที่รันไทม์ มีวิธีทำไหม? วิธีแก้ปัญหาที่เป็นไปได้คือการอ่านซอร์สที่รันไทม์แฮชแล้วเปรียบเทียบกับแฮชของเวอร์ชันที่รู้จัก แต่นั่นเป็นเรื่องที่น่ารังเกียจ มีวิธีแก้ไขที่ดีกว่านี้หรือไม่?
119 python  module  version 

7
Angular 8 - โมดูลการโหลดแบบขี้เกียจ: ข้อผิดพลาด TS1323: การนำเข้าแบบไดนามิกได้รับการสนับสนุนก็ต่อเมื่อแฟล็ก '--module' เป็น 'commonjs' หรือ 'esNext'
เมื่อฉันอัปเดต Angular จาก 7 เป็น Angular 8 ได้รับข้อผิดพลาดจากการโหลดโมดูลที่ขี้เกียจ ฉันได้ลองใช้ตัวเลือกต่างๆซึ่งมีอยู่ในคู่มือการอัพเกรดเชิงมุม ทำการเปลี่ยนแปลงด้านล่าง: ก่อน loadChildren: '../feature/path/sample- tage.module#SameTagModule' หลังจาก loadChildren: () => import('../feature/path/sample- tags.module').then(m => m.CreateLinksModule) ข้อผิดพลาด TS1323: การนำเข้าแบบไดนามิกได้รับการสนับสนุนเมื่อแฟล็ก '--module' เป็น 'commonjs' หรือ 'esNext' เท่านั้น

9
วิธีการส่งออกคลาส ES6 ในโหนด 4 อย่างถูกต้อง?
ฉันกำหนดคลาสในโมดูล: "use strict"; var AspectTypeModule = function() {}; module.exports = AspectTypeModule; var AspectType = class AspectType { // ... }; module.export.AspectType = AspectType; แต่ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: TypeError: Cannot set property 'AspectType' of undefined at Object.<anonymous> (...\AspectType.js:30:26) at Module._compile (module.js:434:26) .... ฉันจะส่งออกคลาสนี้และใช้ในโมดูลอื่นได้อย่างไร ฉันเคยเห็นคำถาม SO อื่น ๆ แต่ฉันได้รับข้อความแสดงข้อผิดพลาดอื่น ๆ เมื่อฉันพยายามใช้วิธีแก้ไข

15
ข้อผิดพลาดในการกำหนดค่า Android Studio Run / Debug: ไม่ได้ระบุโมดูล
ฉันได้รับข้อผิดพลาด 'ไม่ได้ระบุโมดูล' ในการกำหนดค่าการเรียกใช้ของฉัน ฉันไม่มีโมดูลที่แสดงในเมนูแบบเลื่อนลง แต่ฉันไม่เห็นโมดูลของฉัน ปัญหาเกิดขึ้นเมื่อฉันปรับโครงสร้างชื่อโมดูลใหม่เปลี่ยน settings.gradle เป็นชื่อใหม่ ตอนนี้เมื่อฉันไปที่โครงสร้างโครงการและเลือกโมดูลของฉันไม่มีอะไรปรากฏในหน้าจอแม้แต่ข้อผิดพลาด ฉันไม่แน่ใจ 100% แต่ไอคอนข้างโมดูลของฉันดูเหมือนโฟลเดอร์ที่มีถ้วยไม่ใช่โฟลเดอร์ที่มีโทรศัพท์ ขั้นตอนที่แน่นอนของฉัน - เปิดในมุมมอง Android ชื่อไดเร็กทอรี Refactor ชื่อโมดูล refactor เปลี่ยน settings.gradle เนื้อหา: ชื่อเป็นชื่อใหม่

4
สร้างตัวแปรโมดูลใน Ruby
มีวิธีใดในการสร้างตัวแปรในโมดูลใน Ruby ที่จะทำงานคล้ายกับตัวแปรคลาสหรือไม่? สิ่งที่ฉันหมายถึงคือมันจะสามารถเข้าถึงได้โดยไม่ต้องเริ่มต้นอินสแตนซ์ของโมดูล แต่สามารถเปลี่ยนแปลงได้ (ไม่เหมือนกับค่าคงที่ในโมดูล)

9
ES6 ส่งออกค่าทั้งหมดจากวัตถุ
สมมติว่าฉันมีโมดูล ( ./my-module.js) ที่มีวัตถุซึ่งควรเป็นค่าส่งคืน: let values = { a: 1, b: 2, c: 3 } // "export values" results in SyntaxError: Unexpected token ดังนั้นฉันสามารถนำเข้าได้เช่น: import {a} from './my-module' // a === 1 import * as myModule from './my-module' // myModule.a === 1 วิธีเดียวที่ฉันพบคือการเข้ารหัสการส่งออกอย่างหนัก: export let a = values.a export let …

3
การดำเนินการรหัส Python ด้วยตัวเลือก -m หรือไม่
ล่ามหลามมี-m โมดูลตัวเลือกที่ "รันโมดูลห้องสมุดโมดูลเป็นสคริปต์" ด้วยรหัส python a.py: if __name__ == "__main__": print __package__ print __name__ ฉันทดสอบpython -m aเพื่อรับ "" <-- Empty String __main__ ในขณะที่python a.pyผลตอบแทน None <-- None __main__ สำหรับฉันการเรียกทั้งสองนี้ดูเหมือนจะเหมือนกันยกเว้น __package__ ไม่ใช่ไม่มีเมื่อเรียกด้วยตัวเลือก -m ที่น่าสนใจคือpython -m runpy aฉันได้รับเช่นเดียวpython -m aกับโมดูล python ที่คอมไพล์เพื่อรับ a.pyc อะไรคือความแตกต่าง (ในทางปฏิบัติ) ระหว่างการเรียกร้องเหล่านี้? ข้อดีข้อเสียระหว่างกันหรือไม่? นอกจากนี้ Python Essential Reference ของ …
111 python  module  package 

19
typescript ReferenceError: ไม่ได้กำหนดการส่งออก
พยายามติดตั้งโมดูลตามคู่มืออย่างเป็นทางการฉันได้รับข้อความแสดงข้อผิดพลาดนี้: Uncaught ReferenceError: ไม่ได้กำหนดการส่งออก ที่ app.js: 2 แต่ไม่มีที่ไหนในรหัสของฉันฉันไม่เคยใช้ชื่อexportsนี้ ฉันจะแก้ไขปัญหานี้ได้อย่างไร? ไฟล์ app.ts let a = 2; let b:number = 3; import Person = require ('./mods/module-1'); โมดูล -1t export class Person { constructor(){ console.log('Person Class'); } } export default Person; tsconfig.json { "compilerOptions": { "module": "commonjs", "target": "es5", "noImplicitAny": false, "sourceMap": true, …
111 typescript  module 

3
จะเปลี่ยนตัวแปรโมดูลจากโมดูลอื่นได้อย่างไร?
สมมติว่าฉันมีชื่อแพ็คเกจbarและประกอบด้วยbar.py: a = None def foobar(): print a และ__init__.py: from bar import a, foobar จากนั้นฉันเรียกใช้สคริปต์นี้: import bar print bar.a bar.a = 1 print bar.a bar.foobar() นี่คือสิ่งที่ฉันคาดหวัง: None 1 1 นี่คือสิ่งที่ฉันได้รับ: None 1 None ใครสามารถอธิบายความเข้าใจผิดของฉัน?
111 python  import  module 

5
จะชี้การพึ่งพาโมดูล Go ใน go.mod ไปยังการกระทำล่าสุดใน repo ได้อย่างไร
เริ่มต้นด้วย v1.11 Go เพิ่มการสนับสนุนสำหรับโมดูล คำสั่ง go mod init <package name> go build จะสร้างgo.modและgo.sumไฟล์ที่มีเวอร์ชันที่พบทั้งหมดสำหรับการอ้างอิงแพ็กเกจ หากโมดูลไม่มีรีลีสใด ๆ จะใช้คอมมิตล่าสุดของโมดูลนั้น หากโมดูลมีรีลีสโมดูลล่าสุดจะถูกเลือกเป็นการอ้างอิง อย่างไรก็ตามบางครั้งฉันต้องการฟังก์ชันที่ยังไม่ได้อยู่ในรุ่นที่เผยแพร่ แต่จากการคอมมิตที่ทำหลังจากรุ่นนั้น ฉันจะตั้งค่าgo.modไม่ให้ชี้ไปที่รีลีสของโมดูลได้อย่างไร แต่เป็นการคอมมิตเฉพาะในที่เก็บของโมดูล ดูเหมือนว่าฉันสามารถทำได้ด้วยมือไปแล้ว Mod ด้วย module /my/module require ( ... github.com/someone/some_module v0.0.0-20181121201909-af044c0995fe ... ) โดยที่v0.0.0ไม่ตรงกับแท็กรุ่นที่เผยแพร่ล่าสุด20181121201909จะเป็นการประทับเวลาคอมมิตและaf044c0995feจะเป็นคอมมิตแฮชหรือไม่ ข้อมูลดังกล่าวควรหาและป้อนด้วยมือหรือมีวิธีที่ดีกว่านี้?
111 git  go  module 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.