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

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

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

5
Python และ Django ยากลำบากแค่ไหนในการรับพัฒนาเว็บ Java / .NET? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันเพิ่งเริ่มงานใหม่เมื่อสองสามเดือนก่อนที่ บริษัท ขนาดเล็กที่ฉันกำลังนำการพัฒนาทั้งหมดในปัจจุบันและอนาคต โดยส่วนตัวฉันมีประสบการณ์หลายปีในการออกแบบและพัฒนาซอฟต์แวร์จาก Java ส่วนใหญ่ แต่ยังรวมถึงมุมมอง. NET ฉันเลือก. NET ในอาชีพของฉันในภายหลังได้อย่างง่ายดายและไม่ต้องมีการฝึกอบรมใด ๆ เพื่อให้ทำงานได้อย่างยอดเยี่ยมและยิ่งไปกว่านั้นมันช่วยให้ฉันเข้าใจและซาบซึ้งในความเป็นสากลของแนวปฏิบัติที่ดีที่สุดและชุดรูปแบบทั่วไป เพื่อแก้ปัญหาเดียวกัน เจ้านายของฉันมี บริษัท เริ่มต้นอยู่ด้านข้างและโดยไม่เปิดเผยข้อมูลมากเกินไปเขาต้องการเว็บแอปพลิเคชั่นที่มีความซับซ้อนพอสมควรซึ่งรวมเข้ากับ Google Maps เพื่อสร้างเส้นทาง เขาทำสัญญากับเว็บแอปพลิเคชันที่พวกเขา overpromised, underdelivered ส่วนใหญ่และวิ่งข้ามเส้นตายเขากำลังต่อสู้เพื่อพยายามกู้คืนเงินบางส่วนที่เขาลงทุน เขามีซอร์สโค้ดสำหรับไซต์ตามที่เป็นอยู่ในขณะนี้ แต่มีรายการซักผ้าของสิ่งที่เขาต้องการแก้ไขและเพิ่มก่อนที่เขาจะอยู่กับมัน เขาถามฉันว่าฉันต้องการทำสิ่งนี้ที่ด้านข้างเพื่อรับเงินพิเศษบางส่วนหรือไม่ แต่ปัญหาคือเว็บไซต์เขียนด้วย Python โดยใช้ Django ซึ่งฉันไม่มีประสบการณ์ใด ๆ เลย ฉันบอกเขาว่าฉันไม่ใช่คนที่ดีที่สุดสำหรับเรื่องนี้เพราะฉันไม่รู้อะไรเกี่ยวกับ Python หรือ Django และจะต้องเรียนรู้ตั้งแต่ต้น ฉันรู้สึกว่ามันจะไม่ยุติธรรมสำหรับฉันที่จะเรียกเก็บเงินเขาทุกชั่วโมงสำหรับเวลาของฉันถ้าฉันใช้เวลาในการเรียนรู้ภาษาและแพลตฟอร์ม จากการสรุประดับประสบการณ์ของฉันคุณจะเดาได้ยากแค่ไหนหรือใช้เวลาเท่าไหร่ หากคุณคิดว่าจะเป็นการเสียเวลาใครสามารถแนะนำข้อเสนอแนะในการหาผู้พัฒนาเว็บ Python …

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

8
การทดสอบหน่วยที่ดีเพื่อครอบคลุมกรณีการใช้งานของการกลิ้งแม่พิมพ์
ฉันพยายามที่จะจับกับการทดสอบหน่วย สมมติว่าเรามีแม่พิมพ์ซึ่งสามารถมีจำนวนด้านเริ่มต้นเท่ากับ 6 (แต่สามารถมี 4, 5 ด้าน ฯลฯ ): import random class Die(): def __init__(self, sides=6): self._sides = sides def roll(self): return random.randint(1, self._sides) ต่อไปนี้เป็นการทดสอบที่ถูกต้อง / มีประโยชน์หรือไม่ ทดสอบม้วนในช่วง 1-6 สำหรับแม่พิมพ์แบบ 6 ด้าน ทดสอบม้วน 0 สำหรับแม่พิมพ์แบบ 6 ด้าน ทดสอบม้วน 7 สำหรับแม่พิมพ์แบบ 6 ด้าน ทดสอบม้วนในช่วง 1-3 สำหรับแม่พิมพ์ 3 ด้าน ทดสอบม้วน 0 สำหรับแม่พิมพ์ …

4
Python decorators และ Lisp macros
เมื่อมองนักตกแต่งงูหลามที่มีคนสร้างคำกล่าวไว้พวกเขามีพลังเทียบเท่ากับมาโคร Lisp (โดยเฉพาะ Clojure) ดูตัวอย่างที่ให้ไว้ในPEP 318ดูเหมือนกับฉันราวกับว่าพวกเขาเป็นเพียงวิธีการที่ยอดเยี่ยมในการใช้ฟังก์ชั่นลำดับสูงแบบเก่าใน Lisp: def attrs(**kwds): def decorate(f): for k in kwds: setattr(f, k, kwds[k]) return f return decorate @attrs(versionadded="2.2", author="Guido van Rossum") def mymethod(f): ... ฉันไม่ได้เห็นรหัสใด ๆ เปลี่ยนในใด ๆ ของตัวอย่างเช่นที่อธิบายไว้ในกายวิภาคของมาโคร Clojure พลัส ธ หายไปhomoiconicity อาจทำให้การแปลงรหัสเป็นไปไม่ได้ ดังนั้นทั้งสองเปรียบเทียบกันอย่างไรและคุณสามารถบอกได้ว่าพวกเขามีความเท่าเทียมกันในสิ่งที่คุณสามารถทำได้? หลักฐานดูเหมือนจะชี้ไปที่มัน แก้ไข:จากความคิดเห็นฉันกำลังมองหาสองสิ่ง: การเปรียบเทียบ "มีประสิทธิภาพเท่ากับ" และ "เป็นเรื่องง่ายที่จะทำสิ่งที่ยอดเยี่ยมด้วย"
18 python  lisp  clojure  macros 

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

8
Python Coding มาตรฐานเทียบกับผลิตภาพ
ฉันทำงานให้กับองค์กรด้านมนุษยธรรมขนาดใหญ่โดยใช้ซอฟต์แวร์สร้างโครงการที่สามารถช่วยชีวิตผู้คนได้ในกรณีฉุกเฉินโดยเร่งการแจกจ่ายอาหาร องค์กรพัฒนาเอกชนหลายแห่งต้องการซอฟต์แวร์ของเราอย่างยิ่งยวด สิ่งหนึ่งที่ทำให้ฉันกังวลในโครงการนี้คือสิ่งที่ฉันคิดว่าเป็นจุดสนใจที่มากเกินไปในมาตรฐานการเข้ารหัส เราเขียนด้วยภาษาไพ ธ อน / django และใช้รุ่น PEP0008 โดยมีการดัดแปลงหลายอย่างเช่นความยาวบรรทัดสามารถสูงถึง 160 ตัวอักษรและทุกบรรทัดควรยาวมากถ้าเป็นไปได้ไม่มีบรรทัดว่างระหว่างการนำเข้ากฎการตัดบรรทัดที่ใช้ได้กับบางประเภทเท่านั้น ชั้นเรียนเทมเพลตมากมายที่เราต้องใช้แม้ว่ามันจะไม่ใช่วิธีที่ดีที่สุดในการแก้ปัญหา ฯลฯ นักพัฒนาซอฟต์แวร์หลักคนหนึ่งใช้เวลาหนึ่งสัปดาห์ในการเขียนส่วนสำคัญของระบบเพื่อให้ได้มาตรฐานการเข้ารหัสใหม่โดยทิ้งการทดสอบหลายชุดในกระบวนการเนื่องจากการเขียนซ้ำหมายถึงพวกเขาไม่ถูกต้อง เราใช้เวลาสองสัปดาห์ในการเขียนใหม่ฟังก์ชั่นทั้งหมดที่หายไปและแก้ไขข้อบกพร่อง เขาเป็นผู้นำในการพัฒนาและคำพูดของเขามีน้ำหนักดังนั้นเขาจึงโน้มน้าวผู้จัดการโครงการว่ามาตรฐานเหล่านี้จำเป็น devs รุ่นน้องทำตามที่บอก ฉันรู้สึกว่าผู้จัดการโครงการมีความรู้สึกที่แข็งแกร่งของความไม่ลงรอยกันเกี่ยวกับความรู้ความเข้าใจเกี่ยวกับเรื่องนี้ แต่ก็เห็นด้วยกับมันอย่างร้อนแรงในขณะที่เขารู้สึกไม่แน่ใจว่าจะทำอะไร วันนี้ฉันมีปัญหาร้ายแรงเพราะฉันลืมใส่ช่องว่างหลังจากเครื่องหมายจุลภาคในอาร์กิวเมนต์ของคำหลัก ฉันตะโกนโดยนักพัฒนาอีกสองคนและผู้จัดการโครงการระหว่างการโทรด้วย Skype โดยส่วนตัวฉันคิดว่ามาตรฐานการเข้ารหัสมีความสำคัญ แต่ก็คิดว่าเรากำลังเสียเวลาไปกับพวกเขามากและเมื่อฉันพูดแบบนี้มันทำให้โกรธมาก ฉันถูกมองว่าเป็นตัวก่อปัญหาในทีมทีมที่กำลังมองหาแพะรับบาปสำหรับความล้มเหลว ตั้งแต่การแนะนำมาตรฐานการเข้ารหัสประสิทธิภาพการทำงานของทีมได้ลดลงอย่างเห็นได้ชัด แต่สิ่งนี้เป็นการตอกย้ำความหลงใหลเช่นผู้นำ dev เพียงแค่โทษว่าเราไม่ปฏิบัติตามมาตรฐานสำหรับการขาดความก้าวหน้า เขาเชื่อว่าเราไม่สามารถอ่านรหัสของกันและกันได้หากเราไม่ปฏิบัติตามอนุสัญญา สิ่งนี้เริ่มทำให้เหนียว ตอนนี้ฉันกำลังพยายามแก้ไขสคริปต์ต่างๆ, autopep8, pep8ify และ PythonTidy เพื่อพยายามจับคู่อนุสัญญา นอกจากนี้เรายังเรียกใช้ pep8 เทียบกับซอร์สโค้ด แต่มีการแก้ไขโดยนัยมากมายสำหรับมาตรฐานของเราซึ่งยากที่จะติดตามพวกเขาทั้งหมด นักพัฒนานำง่ายๆเลือกข้อบกพร่องที่สคริปต์ pep8 ไม่ได้รับและตะโกนใส่เราในการประชุมสแตนด์อัพครั้งต่อไป ทุกสัปดาห์จะมีการเพิ่มมาตรฐานการเข้ารหัสใหม่ซึ่งบังคับให้เราเขียนรหัสที่มีอยู่, ใช้งาน, ที่ทดสอบอยู่ …

10
ทำไมการสืบทอดและความหลากหลายจึงใช้กันอย่างแพร่หลาย?
ยิ่งฉันเรียนรู้เกี่ยวกับกระบวนทัศน์การเขียนโปรแกรมที่แตกต่างกันเช่นการเขียนโปรแกรมการทำงานยิ่งฉันเริ่มตั้งคำถามเกี่ยวกับภูมิปัญญาของแนวคิด OOP เช่นการสืบทอดและ polymorphism ครั้งแรกที่ฉันได้เรียนรู้เกี่ยวกับการสืบทอดและ polymorphism ในโรงเรียนและในเวลานั้น polymorphism ดูเหมือนจะเป็นวิธีที่ยอดเยี่ยมในการเขียนรหัสทั่วไปที่อนุญาตให้ขยายได้ง่าย แต่ในการเผชิญกับการพิมพ์เป็ด (ทั้งแบบไดนามิกและแบบคงที่) และฟังก์ชั่นการใช้งานเช่นฟังก์ชั่นการสั่งซื้อที่สูงขึ้นฉันได้เริ่มดูการสืบทอดและความหลากหลายในรูปแบบเพื่อกำหนดข้อ จำกัด ที่ไม่จำเป็น แนวคิดทั่วไปที่อยู่เบื้องหลัง polymorphism คือคุณเขียนฟังก์ชันหนึ่งครั้งและหลังจากนั้นคุณสามารถเพิ่มฟังก์ชันการทำงานใหม่ให้กับโปรแกรมของคุณโดยไม่ต้องเปลี่ยนฟังก์ชั่นดั้งเดิม - สิ่งที่คุณต้องทำคือสร้างคลาสอื่นที่ได้มาซึ่งใช้วิธีการที่จำเป็น แต่วิธีนี้ง่ายกว่ามากในการพิมพ์เป็ดไม่ว่าจะเป็นภาษาแบบไดนามิกเช่น Python หรือภาษาแบบคงที่เช่น C ++ ลองพิจารณาฟังก์ชั่น Python ต่อไปนี้ตามด้วย C ++ แบบคงที่: def foo(obj): obj.doSomething() template <class Obj> void foo(Obj& obj) { obj.doSomething(); } การเทียบเท่า OOP จะเหมือนกับโค้ด Java ต่อไปนี้: public void foo(DoSomethingable …

3
มันดีไหมที่จะมีหลายคลาสในไฟล์เดียวกันใน Python?
ฉันเพิ่งเข้ามาสู่โลก Python หลังจากหลายปีของ Java และ PHP ในขณะที่ภาษานั้นค่อนข้างตรงไปตรงมาฉันกำลังดิ้นรนกับปัญหา 'เล็กน้อย' บางอย่างที่ฉันไม่สามารถคาดหัวได้ - และฉันไม่สามารถหาคำตอบในเอกสารและแบบฝึกหัดมากมายที่ฉันอ่านมาได้ . สำหรับผู้ปฏิบัติงาน Python ที่มีประสบการณ์คำถามนี้อาจดูไร้สาระ แต่ฉันต้องการคำตอบจริงๆเพื่อที่ฉันจะได้ไปต่อด้วยภาษา: ใน Java และ PHP ( แม้ว่าจะไม่จำเป็นอย่างเคร่งครัด ) คุณคาดว่าจะเขียนแต่ละclassไฟล์ของตัวเองโดยมีชื่อไฟล์ว่าclassเป็นแนวทางปฏิบัติที่ดีที่สุด แต่ใน Python หรืออย่างน้อยในแบบฝึกหัดที่ฉันตรวจสอบมันก็โอเคที่จะมีหลายคลาสในไฟล์เดียวกัน กฎนี้มีไว้ในการผลิตรหัสพร้อมใช้หรือไม่หรือทำเพื่อความกะทัดรัดในรหัสที่ให้ความรู้เท่านั้น

5
ทำไมการทดสอบหน่วยวิธีส่วนตัวจึงถือว่าเป็นการปฏิบัติที่ไม่ดี?
บริบท: ฉันกำลังทำงานในโครงการขนาดเล็กใน Python ฉันมักจะจัดโครงสร้างชั้นเรียนของฉันด้วยวิธีสาธารณะบางอย่างที่มีการจัดทำเป็นเอกสาร แต่ส่วนใหญ่จะจัดการกับแนวคิดระดับสูง (สิ่งที่ผู้ใช้ของชั้นเรียนควรรู้และใช้) และวิธีซ่อนเร้น (เริ่มต้นด้วยขีดเส้นใต้) ซึ่งรับผิดชอบ การประมวลผลที่ซับซ้อนหรือระดับต่ำ ฉันรู้ว่าการทดสอบมีความสำคัญต่อความมั่นใจในโค้ดและเพื่อให้แน่ใจว่าการดัดแปลงใด ๆ ในภายหลังจะไม่ทำให้พฤติกรรมก่อนหน้านี้เสียหาย ปัญหา: เพื่อสร้างวิธีสาธารณะในระดับที่สูงขึ้นบนฐานที่เชื่อถือได้ฉันมักจะทดสอบวิธีส่วนตัว ฉันพบว่าการแก้ไขรหัสได้แนะนำการถดถอยและตำแหน่งที่ง่ายขึ้นหรือไม่ หมายความว่าการทดสอบภายในเหล่านั้นสามารถทำลายการแก้ไขเล็กน้อยและจะต้องแก้ไข / แทนที่ แต่ฉันก็รู้ด้วยเช่นกันว่าการทดสอบหน่วยวิธีส่วนตัวนั้นเป็นแนวคิดที่ขัดแย้งกันหรืออย่างน้อยก็ถือว่าเป็นแนวปฏิบัติที่ไม่ดี เหตุผล: เป็นเพียงพฤติกรรมสาธารณะเท่านั้นที่ควรได้รับการทดสอบ ( อ้างอิง ) คำถาม: ฉันสนใจเกี่ยวกับการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดและต้องการที่จะเข้าใจ: เหตุใดการใช้การทดสอบหน่วยในวิธีส่วนตัว / ซ่อนเร้นจึงไม่ดี (ความเสี่ยงคืออะไร) แนวปฏิบัติที่ดีที่สุดคืออะไรเมื่อวิธีสาธารณะสามารถใช้ระดับต่ำและ / หรือการประมวลผลที่ซับซ้อน ความแม่นยำ: มันไม่ได้เป็นวิธีการที่จะคำถาม Python ไม่มีแนวคิดเรื่องความเป็นส่วนตัวที่แท้จริงและวิธีการซ่อนเร้นไม่ได้อยู่ในรายการ แต่สามารถใช้เมื่อคุณทราบชื่อ ฉันไม่เคยได้รับการสอนกฎและรูปแบบการเขียนโปรแกรม: ชั้นเรียนสุดท้ายของฉันมาจากยุค 80 ... ฉันได้เรียนรู้ภาษาเป็นหลักด้วยการลองผิดลองถูกและการอ้างอิงบนอินเทอร์เน็ต

4
ประโยชน์ของรูปแบบ IO monad สำหรับการจัดการผลข้างเคียงทางวิชาการล้วนๆหรือไม่?
ขออภัยสำหรับคำถามข้างเคียงอีกคำถามของ FP + แต่ฉันไม่พบคำถามที่มีอยู่ซึ่งตอบคำถามนี้ให้ฉันได้ ความเข้าใจของฉัน (จำกัด ) ของการเขียนโปรแกรมเชิงฟังก์ชันคือผลกระทบของรัฐ / ผลข้างเคียงควรถูกย่อให้เล็กสุดและแยกจากตรรกะไร้สัญชาติ ฉันยังรวบรวมวิธีการของ Haskell เพื่อทำสิ่งนี้ IO monad ประสบความสำเร็จในการทำสิ่งนี้ด้วยการห่อตัวการกระทำแบบ stateful ไว้ในคอนเทนเนอร์เพื่อการดำเนินการในภายหลังโดยพิจารณานอกขอบเขตของโปรแกรม ฉันพยายามที่จะเข้าใจรูปแบบนี้ แต่จริงๆแล้วเพื่อตรวจสอบว่าจะใช้ในโครงการ Python หรือไม่ดังนั้นต้องการหลีกเลี่ยง Haskell ถ้ามี ตัวอย่างที่เข้ามาหยาบ หากโปรแกรมของฉันแปลงไฟล์ XML เป็นไฟล์ JSON: def main(): xml_data = read_file('input.xml') # impure json_data = convert(xml_data) # pure write_file('output.json', json_data) # impure ไม่ใช่วิธีการของ IO monad ในการทำสิ่งนี้อย่างมีประสิทธิภาพ: steps …

7
Python จะช้าเกินไปสำหรับการใช้งานฝั่งไคลเอ็นต์ในเบราว์เซอร์หรือไม่?
ฉันได้ยินคำแถลงว่า Python จะช้าเกินกว่าจะใช้งานได้ในเบราว์เซอร์ ฉันคิดว่า Javascript เหนือกว่าในแง่นี้เพราะ บริษัท อย่าง Google ที่ต้องการมันเร็ว (และทำให้เร็ว) เพราะพวกเขาต้องการมันเพื่อความอยู่รอด แต่ฉันอาจผิด มีความแตกต่างในการออกแบบของ Python และ Javascript หรือไม่ที่มีผลกระทบต่อประสิทธิภาพของเบราว์เซอร์ ตั้งแต่ตอนนี้ยังไม่มีการใช้งาน Python ในฝั่งไคลเอนต์คำถามของฉันมาจากคำแถลงที่คนทำดังนั้นบางทีมันอาจจะมีบางอย่างที่เกี่ยวกับภาษาของตัวเอง (แม้ว่าฉันจะไม่เชื่อ)

5
Python ทำไมช้ากว่า Java แต่เร็วกว่า PHP [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบ เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันได้เห็นการวัดเปรียบเทียบหลายครั้งหลายครั้งที่แสดงให้เห็นว่าภาษาหลายภาษาทำงานในหน้าที่ที่ได้รับมอบหมาย การเปรียบเทียบเหล่านี้มักจะเปิดเผยว่า Python ช้ากว่า Java และเร็วกว่า PHP และฉันสงสัยว่าทำไมถึงเป็นเช่นนั้น Java, Python และ PHP ทำงานในเครื่องเสมือน ทั้งสามภาษาแปลงโปรแกรมเป็นรหัสไบต์แบบกำหนดเองที่ทำงานอยู่ด้านบนของระบบปฏิบัติการดังนั้นจึงไม่มีใครทำงานได้ตามปกติ ทั้ง Java และ Python สามารถ "รวบรวม" ( .pycสำหรับ Python) แต่__main__โมดูลสำหรับ Python ไม่ได้รวบรวม Python และ PHP ถูกพิมพ์แบบไดนามิกและ Java เป็นแบบคงที่ - นี่คือเหตุผลที่ Java เร็วขึ้นและถ้าเป็นเช่นนั้นโปรดอธิบายว่ามันมีผลต่อความเร็วอย่างไร และถึงแม้ว่าอาร์กิวเมนต์ dynamic-vs-static นั้นถูกต้อง แต่ก็ไม่ได้อธิบายว่าทำไม PHP ถึงช้ากว่า …

2
การทำให้เป็นอันดับและการดีซีเรียลไลเซชั่นควรเป็นความรับผิดชอบของชั้นเรียนหรือไม่
ขณะนี้ฉันอยู่ในขั้นตอนการออกแบบ (อีกครั้ง) ของคลาสรุ่นต่างๆของแอปพลิเคชัน C # .NET (โมเดลดังใน M ของ MVC) คลาสโมเดลมีข้อมูลพฤติกรรมและความสัมพันธ์ซึ่งได้รับการออกแบบมาเป็นอย่างดี ฉันเขียนแบบจำลองใหม่จาก Python เป็น C # ใน Python model ฉันคิดว่าฉันเห็นหูด แต่ละรุ่นรู้วิธีการทำให้เป็นอันดับตัวเองและตรรกะการทำให้เป็นอันดับไม่มีส่วนเกี่ยวข้องกับพฤติกรรมที่เหลือของคลาสใด ๆ ตัวอย่างเช่นลองนึกภาพ: Imageชั้นเรียนด้วย.toJPG(String filePath) .fromJPG(String filePath)วิธีการ ImageMetaDataชั้นเรียนด้วย.toString()และ.fromString(String serialized)วิธีการ คุณสามารถจินตนาการได้ว่าวิธีการทำให้เป็นอันดับเหล่านี้ไม่ได้เชื่อมโยงกับส่วนที่เหลือของชั้นเรียน แต่มีเพียงชั้นเรียนเท่านั้นที่สามารถรับประกันได้ว่าจะรู้ข้อมูลที่เพียงพอในการทำให้เป็นอันดับตัวเอง มันเป็นเรื่องธรรมดาสำหรับชั้นเรียนหรือไม่ที่จะรู้วิธีการทำให้เป็นอันดับและทำให้เสียความเป็นตัวของตัวเอง? หรือฉันไม่มีรูปแบบทั่วไป

5
อัลกอริทึมสำหรับช่วงการทับซ้อนของแบนราบ
ฉันกำลังมองหาวิธีที่ดีในการทำให้แบน (แยก) รายการของช่วงตัวเลขที่อาจทับซ้อนกัน ปัญหาคล้ายกันมากกับคำถามนี้: วิธีที่เร็วที่สุดในการแยกช่วงวันที่ซ้อนทับกันและอื่น ๆ อีกมากมาย อย่างไรก็ตามช่วงนั้นไม่ได้เป็นจำนวนเต็มเท่านั้นและฉันกำลังมองหาอัลกอริทึมที่เหมาะสมซึ่งสามารถนำไปใช้งานได้อย่างง่ายดายใน Javascript หรือ Python เป็นต้น ข้อมูลตัวอย่าง: ตัวอย่างการแก้ไข: ขออภัยหากนี่เป็นสิ่งที่ซ้ำกัน แต่ฉันยังหาวิธีแก้ปัญหาไม่ได้

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