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

Python เป็นภาษาการเขียนโปรแกรมตีความระดับสูงแบบไดนามิก การออกแบบมุ่งเน้นไปที่ไวยากรณ์ที่ชัดเจนวิธีการเขียนโปรแกรมเชิงวัตถุและวิธีที่ถูกต้องในการทำสิ่งที่ชัดเจน Python สนับสนุนโมดูลและข้อยกเว้นและมีไลบรารีโมดูลมาตรฐานมากมาย Python มีวัตถุประสงค์ทั่วไปและใช้กันอย่างแพร่หลายตั้งแต่เว็บไปจนถึงระบบฝังตัว

5
JVM และ Java ของ WORA แตกต่างจากภาษาระดับสูงอื่น ๆ อย่างไร
ในโลกของ Java เรามักจะพูดถึง JVM และเมื่อ Java เป็นรุ่นใหม่มันมีคุณสมบัตินักฆ่าที่คาดว่าจะเป็นของ "Write Once, Run Anywhere" จากวิธีที่ผู้คนพูดคุยและเขียนสิ่งนี้ดูเหมือนจะแตกต่างจากวิธีการทำงานของ Python แต่ฉันไม่ได้ตระหนักถึงวิธีการที่รหัส Python ที่ฉันเขียนจะทำงานแตกต่างกันในเครื่องอื่น (แม้ว่าฉันจะไม่ได้เขียน Python มาก) แล้วฉันจะพลาดอะไรไป? JVM แตกต่างจาก Python interpreter อย่างไร? มีวิธีที่ Python ขาดความเป็นอิสระของแพลตฟอร์ม Java หรือไม่? หรือนี่เป็นเพียงความแตกต่างทางวัฒนธรรม?

3
วิธีจัดการพารามิเตอร์ส่วนกลางอย่างถูกต้องสำหรับการทดสอบหน่วยในงูใหญ่?
เรากำลังใช้อัลกอริทึมมากมายซึ่งโดยทั่วไปจะมีพารามิเตอร์ที่แชร์สาธารณะรู้จักและความปลอดภัย ปัจจุบันเราใช้คลาสที่เก็บพารามิเตอร์ทั้งหมดและวัตถุโกลบอลที่กำหนดไว้ล่วงหน้าสองรายการ: class PublicParams(object): p = q = 0 def __init__(self, p, q): self.p = p self.q = q # used for tests publicParams_test = PublicParams(15,7) # Some 2048 bit numbers for example publicParams_secure = PublicParams(128378947298374928374,128378947298374928374) จากนั้นอัลกอริธึมนำPublicParamsวัตถุเป็นอาร์กิวเมนต์ที่เป็นค่าเริ่มต้นไปยังการผลิตpublicParams_secure def AlgoOne(n, publicParams = publicParams_secure): # do stuff with publicParams.p # ... AlgoTwo(x, …

2
งูหลามคลาสที่มีเพียงหนึ่งอินสแตนซ์: เมื่อใดที่จะสร้างอินสแตนซ์ของคลาส (เดี่ยว) และเมื่อใดที่ควรทำงานกับคลาสแทน
รับคลาส Python ซึ่งจะถูกสร้างอินสแตนซ์เพียงครั้งเดียวคือจะมีเพียงวัตถุเดียวของคลาส ฉันสงสัยในกรณีที่เหมาะสมที่จะสร้างอินสแตนซ์ของคลาสเดียวแทนที่จะทำงานโดยตรงกับคลาสแทน มีคำถามที่คล้ายกันแต่มีจุดเน้นที่แตกต่าง: มันเกี่ยวกับการจัดกลุ่มตัวแปรส่วนกลางและฟังก์ชันในคลาสและ มันไม่ได้เป็นงูหลามที่เฉพาะเจาะจง หลังหมายถึงมันไม่ได้พิจารณาความจริงที่ว่าคลาส (ใน Python) เป็นวัตถุด้วย UPDATE: ใน Python ฉันสามารถทำสิ่งต่อไปนี้กับทั้งคลาสและวัตถุ: class A(object): pass A.some_state_var = True # Then later A.some_state_var = False my_a = A() my_a.some_state_var = True # Then later my_a.some_state_var = False ดังนั้นฉันไม่เห็นวิธีการเลือกระหว่างคลาสและอินสแตนซ์ของคลาสนั้นเกี่ยวกับสถานะ (ใน Python) ฉันสามารถรักษาสถานะด้วยสองอย่างใดอย่างหนึ่ง นอกจากนี้แรงจูงใจในการสร้างคลาส / คลาสอินสแตนซ์ของฉันไม่ได้เกี่ยวกับการบังคับใช้ข้อกำหนดแบบซิงเกิล นอกจากนี้ยังไม่มากนักเกี่ยวกับการสร้างประเภทใหม่ แรงจูงใจคือการจัดกลุ่มรหัสและข้อมูลที่เกี่ยวข้องและมีส่วนต่อประสานกับมัน นี่คือเหตุผลที่ฉันเริ่มต้นแบบเป็นคลาสในแผนภาพคลาส เมื่อพูดถึงการนำไปใช้ฉันเริ่มสงสัยว่าจะยกตัวอย่างชั้นเรียนนี้หรือไม่

4
ฉันจะสร้างแบบจำลองวันที่บางส่วนใน Python ได้อย่างไร เช่นปีที่ไม่รู้จักหรือวันที่ไม่รู้จักของเดือน?
ฉันต้องการที่จะสามารถจับข้อเท็จจริงเหมือนและBob was born in 2000Bill's birthday is May 7th ในตัวอย่างทั้งสองเรารู้เพียงส่วนหนึ่งของวันเดือนปีเกิดของบุคคลนั้น ในกรณีหนึ่งเรารู้เพียงปีเท่านั้น ในกรณีอื่นเรารู้เดือนและวัน แต่ไม่ใช่ปี ฉันจะรวบรวมข้อมูลนี้ได้อย่างไร ตัวอย่างเล็ก ๆ น้อย ๆ ของการทำงานนี้: ลองนึกภาพห้องสมุดเช่นวันที่และเวลาที่อนุญาตให้ไม่มีในเขตข้อมูลเพื่อแสดงสิ่งที่ไม่รู้จัก ฉันอาจมีรหัสดังนี้: date_a = date(2000, 5, None) date_b = date(2000, 6, None) difference = date_b - date_a assert difference.min.days == 1 assert difference.max.days == 60 # Or something close to 60. …
11 python 

2
ทำไมไพ ธ อนจึงใช้ตารางแฮชในการนำดิจิตัลมาใช้ แต่ไม่ใช่ต้นไม้สีแดงดำ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ทำไมไพ ธ อนจึงใช้ตารางแฮชในการนำดิจิตัลมาใช้ แต่ไม่ใช่ต้นไม้สีแดงดำ กุญแจคืออะไร? ประสิทธิภาพ?

3
ฉันจำเป็นต้องเข้าใจ Internals ของภาษาการเขียนโปรแกรมหรือไม่?
ฉันเริ่มต้นกับ Python และฉันก็ชอบมันมาก คำถามหนึ่งที่อยู่ในใจของฉันบ่อยครั้งคือถ้าฉันต้องเข้าใจและเรียนรู้ภาษาสากลของภาษาโปรแกรม (เช่นในกรณีของ Python) อย่างที่คุณอาจจะรู้ว่า Python เขียนด้วยภาษาซี ดังนั้นคำถามของฉันคือต้องดำดิ่งลงไปในภาษาการเขียนโปรแกรมเพื่อความเชี่ยวชาญหรือคล่องแคล่วในภาษานี้ ฉันเปรียบเทียบคำถามนี้กับภาษา "ธรรมชาติ" ฉันไม่รู้รายละเอียดเกี่ยวกับไวยากรณ์ในภาษาแม่ของฉัน แต่ฉันสามารถแสดงออกได้อย่างไม่มีปัญหาในภาษานั้น นี่คือเมื่อฉันพูดว่าฉันพูดภาษาได้คล่อง สิ่งนั้นใช้ได้กับภาษาการเขียนโปรแกรมด้วยหรือไม่

3
การเขียนโปรแกรมเดสก์ท็อปข้ามแพลตฟอร์ม: C ++ vs. Python [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา เอาล่ะฉันจะมีประสบการณ์ในฐานะโปรแกรมเมอร์ Obj-C / Cocoa และ Ruby w / Rails มือสมัครเล่น สิ่งเหล่านี้ยอดเยี่ยม แต่ก็ไม่ค่อยมีประโยชน์สำหรับการเขียนแอปพลิเคชันข้ามแพลตฟอร์ม (หวังว่า GNUStep จะเสร็จสมบูรณ์ในวันแรกสำหรับแพลตฟอร์มหลายแพลตฟอร์ม แต่วันนั้นไม่ใช่วันนี้) C ++ จากสิ่งที่ฉันสามารถรวบรวมได้นั้นเป็นพลังที่ยิ่งใหญ่ แต่ก็เป็นพฤติกรรมที่น่าเกลียดขนาดใหญ่ที่ใช้เวลาครึ่งทศวรรษหรือมากกว่านั้นในการควบคุม ฉันยังได้อ่านด้วยว่าคุณสามารถถ่ายภาพตัวเองได้อย่างง่ายดายไม่เพียงแค่ถ่ายภาพเท้าของคุณเองเท่านั้น เห็นได้ชัดว่าทั้งหมดนี้ค่อนข้างน่ากลัว ถูกต้องหรือไม่ Python ดูเหมือนจะให้พลังมากที่สุดของ C ++ และง่ายต่อการรับด้วยความเร็ว การเสียสละครั้งนี้ใหญ่แค่ไหน? มันมีความหมายหรือสามารถเพิกเฉยได้? ฉันจะเขียนแอปพลิเคชั่นที่รวดเร็วเสถียรและมีความน่าเชื่อถือสูงในระยะเวลาที่เหมาะสมได้อย่างไร นอกจากนี้จะเป็นการดีกว่าถ้าใช้ Qt สำหรับ UI ของคุณหรือรักษาการแยกส่วนหน้าเนทีฟแบบดั้งเดิมสำหรับแต่ละแพลตฟอร์มแทน แก้ไข: เพื่อความชัดเจนเป็นพิเศษมีแอพพลิเคชั่นสองประเภทที่ฉันต้องการเขียน: หนึ่งคือ frontend ฐานข้อมูลที่เป็นมิตรและสะดวกมากและอีกอันหนึ่งซึ่งไม่ต้องสงสัยเลยว่าจะเกิดขึ้นในภายหลัง

3
เป็นการเริ่มต้นที่ดีกว่าการเตรียมแอตทริบิวต์ในชั้นเรียนหรือเพิ่มไปตามทาง?
ฉันขอโทษถ้านี่เป็นคำถามที่ซับซ้อนอย่างแน่นอน แต่ฉันอยากรู้ว่าแนวทางปฏิบัติที่ดีที่สุดออกไปที่นั่นและฉันดูเหมือนจะไม่พบคำตอบที่ดีใน Google ใน Python ฉันมักจะใช้คลาสที่ว่างเปล่าเป็นคอนเทนเนอร์โครงสร้างข้อมูล super-catchall (เรียงลำดับเหมือนไฟล์ JSON) และเพิ่มคุณสมบัติไปพร้อมกัน: class DataObj: "Catch-all data object" def __init__(self): pass def processData(inputs): data = DataObj() data.a = 1 data.b = "sym" data.c = [2,5,2,1] สิ่งนี้ทำให้ฉันมีความยืดหยุ่นอย่างมากเนื่องจากอ็อบเจกต์คอนเทนเนอร์สามารถเก็บอะไรก็ได้ ดังนั้นหากความต้องการใหม่เกิดขึ้นฉันจะเพิ่มมันเป็นคุณสมบัติอื่นไปยังวัตถุ DataObj (ซึ่งฉันผ่านไปรอบ ๆ ในรหัสของฉัน) อย่างไรก็ตามเมื่อเร็ว ๆ นี้ฉันรู้สึกประทับใจ (โดยโปรแกรมเมอร์ FP) ว่านี่เป็นการฝึกฝนที่แย่มากเพราะมันยากที่จะอ่านรหัส หนึ่งจะต้องผ่านรหัสทั้งหมดเพื่อคิดออกว่าคุณลักษณะ DataObj จริงมีอะไร คำถาม : ฉันจะเขียนสิ่งนี้ใหม่เพื่อการบำรุงรักษาที่มากขึ้นได้อย่างไรโดยไม่ลดความยืดหยุ่นลง? …

3
การตรวจสอบประเภทในล่าม / ผู้แปลภาษาแบบไดนามิกเช่น JavaScript เป็นอย่างไร
ในภาษาแบบไดนามิกเช่น JavaScript หรือ Python ชนิดของตัวแปรจะถูกกำหนดที่รันไทม์ นี่คือเหตุผลหนึ่งที่ทำให้ช้ากว่าภาษาที่พิมพ์เช่น Java การตรวจสอบประเภทดำเนินการอย่างไร อะไรเป็นเหตุผลสำคัญที่ทำให้กระบวนการนี้ช้า

2
วิธีการเลือกตัวเลือกที่น่าจะเป็นไปได้มากที่สุดจากรายการตามการป้อนข้อความของผู้ใช้
ฉันกำลังทำงานกับแอปพลิเคชัน OCR ที่ฉันต้องเลือกตัวเลือกตามการป้อนข้อความของผู้ใช้ Ex: Available Options: ["python", "ruby", "java", "clojure", "haskell"] Input: kava Output: java Input: ruby Output: ruby Input: clujuro Output: clojure etc.. แอปพลิเคชันของฉันใช้ภาษาไพ ธ อนมีขั้นตอนวิธีแก้ไขปัญหานี้อยู่แล้ว

10
โปรแกรมเมอร์ Python พบปัญหาช่องว่างไม่สะดวกหรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา โปรแกรมเมอร์จำนวนมากเมื่อพบ Python เป็นครั้งแรกจะถูกเลื่อนออกทันทีโดยความสำคัญของช่องว่าง ฉันเคยได้ยินเหตุผลหลายประการว่าเรื่องนี้ไม่สะดวก แต่ฉันไม่เคยได้ยินเรื่องร้องเรียนจากโปรแกรมเมอร์ Python แน่นอนว่าฉันไม่ได้พบโปรแกรมเมอร์ Python มากมายเพราะฉันได้ใช้เวลาทำงานในโลก Java ดังนั้นคำถามของฉันสำหรับพวกคุณที่เข้าร่วมในโครงการ Python ขนาดใหญ่ (มากกว่า 3 เดือนโดยที่ Python เป็นภาษาหลักที่ใช้): คุณพบปัญหาช่องว่างที่ไม่สะดวกและน่ารำคาญอย่างต่อเนื่องหรือไม่ หรือมันไม่ใช่ปัญหาเมื่อคุณได้รับกระแส? ฉันไม่ได้ถามคำถามเพราะฉันเพื่อหรือต่อต้านหลามหรือเพื่อหรือต่อต้านการใช้ช่องว่าง ฉันชอบ Python แต่ฉันไม่เคยใช้มันเพื่ออะไรที่ยิ่งใหญ่ โปรดอย่าให้การคาดเดาหากคุณไม่ได้ใช้ Python

7
มีใครบ้างที่เคยใช้ Python / Ruby และ PHP มาเป็นเวลานานและยังต้องการ PHP อีกหรือไม่ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน9 ปีที่ผ่านมา ฉันมักจะหลงโดยบทความปกป้อง PHP และข้อโต้แย้งที่ใช้ บ่อยครั้งที่ผู้เขียนบทความประเภทนี้ไม่ได้กล่าวถึงประสบการณ์ที่พวกเขามีกับภาษาอื่น ๆ โดยส่วนตัวแล้วฉันคิดว่ามันยากที่จะจินตนาการว่าใครบางคนจะรู้จัก Python หรือ Ruby และ PHP ในระดับสูงและยังคงชอบ PHP ดังนั้นหากใครเหมาะกับคำอธิบายนี้ฉันจะสนใจที่จะฟังว่าทำไมคุณถึงชอบ PHP ในภาษาเหล่านี้

3
ใน Python 3.4+ ทำไมฉันควรใช้ namedtuple บน SimpleNamespace เมื่อไม่ได้ใช้ dict ดูเหมือนว่าจะคล้ายกันมาก
เมื่อถึงจุดหนึ่งคุณอาจพบกับฟังก์ชั่นที่มีข้อโต้แย้งมากมาย บางครั้งมันก็สมเหตุสมผลที่จะรวมการขัดแย้งบางอย่างเข้ากับการโต้แย้งสุดยอด ฉันทำสิ่งนี้บ่อยครั้งด้วย dicts แต่ตอนนี้ฉันกำลังมองหาวิธีที่ดีกว่าในการทำมัน ฉันอยากจะกลับ ... def do_something(ax, ay, az, bu, bv, c): # Do something ... เข้าสู่ ... def do_something(a, b, c): # Do something ... ที่ไหนaและbมีตัวแปรย่อย วิธีหนึ่งในการทำเช่นนี้คือ: A = namedtuple('A', 'x, y, z') a = A(ax, ay, az) B = namedtuple('B', 'u, v') b = B(bu, bv) …

1
การใช้คำสั่งการแก้ไขวิธีการของ Python สำหรับการฉีดที่ต้องพึ่งพา - นี่มันแย่ไหม?
ฉันดู Pycon ของ Raymond Hettinger พูดว่า "Super Considered Super" และเรียนรู้เล็กน้อยเกี่ยวกับ PROON ของ MRO (Method Resolution Order) ซึ่งทำให้ชั้นเรียนเป็น "ผู้ปกครอง" ในลักษณะเชิงเส้น เราสามารถใช้สิ่งนี้เพื่อประโยชน์ของเราเช่นในรหัสด้านล่างเพื่อทำการฉีดพึ่งพา ตอนนี้ตามธรรมชาติฉันต้องการใช้superสำหรับทุกสิ่ง! ในตัวอย่างด้านล่างที่Userระดับประกาศอ้างอิงมันโดยการสืบทอดจากทั้งสองและLoggingService UserServiceนี่ไม่ใช่สิ่งที่พิเศษเป็นพิเศษ ส่วนที่น่าสนใจคือเราสามารถใช้การแก้ไขวิธีสั่งซื้อยังจำลองการอ้างอิงในระหว่างการทดสอบหน่วย โค้ดด้านล่างนี้สร้างสิ่งMockUserServiceที่สืบทอดมาUserServiceและนำเสนอวิธีการที่เราต้องการจำลอง validate_credentialsในตัวอย่างด้านล่างเราให้การดำเนินการของ เพื่อที่จะได้MockUserServiceจัดการกับการโทรใด ๆ ที่validate_credentialsเราจำเป็นต้องวางไว้ก่อนUserServiceใน MRO นี้ทำได้โดยการสร้างชั้นห่อหุ้มรอบUserเรียกว่าMockUserและมีมันสืบทอดมาจากและUserMockUserService ตอนนี้เมื่อเราทำMockUser.authenticateและในทางกลับกันการเรียกใช้มาsuper().validate_credentials() MockUserServiceก่อนUserServiceในการสั่งซื้อวิธีการแก้ปัญหาและเนื่องจากมีการใช้งานที่เป็นรูปธรรมของvalidate_credentialsการดำเนินการนี้จะถูกนำมาใช้ Yay - เราประสบความสำเร็จUserServiceในการทดสอบหน่วยการเรียนรู้ของเรา พิจารณาว่าUserServiceอาจทำการโทรผ่านเครือข่ายหรือฐานข้อมูลราคาแพง - เราเพิ่งลบปัจจัยแฝงของสิ่งนี้ นอกจากนี้ยังไม่มีความเสี่ยงในการUserServiceสัมผัสข้อมูลสด / กระทุ้ง class LoggingService(object): """ Just a contrived logging class …

1
การสุ่มแบบ Python ทำงานอย่างไร
shuffle จากการสุ่มทำงานใน Python อย่างไร ฉันถามเพราะมันใช้งานได้เร็วมาก เมื่อฉันพยายามเขียน shuffle มันจะทำงาน 1 นาทีสำหรับองค์ประกอบ 10 ^ 6 แต่ Python shuffle ทำใน 8 วินาทีหรือไม่
11 python  random 

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