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

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

6
คุณสามารถใช้การเขียนโปรแกรม "เชิงวัตถุ" โดยไม่มีคำหลักชั้น?
สมมติว่าเราต้องการให้มี "บัญชี" ที่เป็นนามธรรมในธนาคาร นี่คือวิธีหนึ่งโดยใช้functionวัตถุใน Python: def account(): """Return a dispatch dictionary representing a bank account. >>> a = account() >>> a['deposit'](100) 100 >>> a['withdraw'](90) 10 >>> a['withdraw'](90) 'Insufficient funds' >>> a['balance'] 10 """ def withdraw(amount): if amount > dispatch['balance']: return 'Insufficient funds' dispatch['balance'] -= amount return dispatch['balance'] def deposit(amount): dispatch['balance'] …

6
การใช้ภาษาโปรแกรมที่ Google [ปิด]
ฉันเคยได้ยินว่า Google ใช้ Python, Java และ C ++ แต่สิ่งที่ฉันไม่รู้ก็คือวิธีการใช้ภาษาการเขียนโปรแกรมแต่ละภาษา ฉันหมายถึง Python, Java และ C ++ ที่ใช้กับ Google ทำไมพวกเขาถึงไม่เกิน 3 ภาษาการเขียนโปรแกรมเมื่อ 1 ภาษาเพียงพอ มีใครรู้บ้าง

6
เปลี่ยนโปรเจค Python ส่วนตัวให้กลายเป็นไลบรารี่
ฉันเป็นนักวิชาการมากกว่าโปรแกรมเมอร์และฉันมีประสบการณ์หลายปีในการเขียนโปรแกรม Python สำหรับใช้เองเพื่อสนับสนุนงานวิจัยของฉัน โปรเจ็กต์ล่าสุดของฉันน่าจะมีประโยชน์กับคนอื่น ๆ เช่นฉันและฉันกำลังคิดว่าจะปล่อยมันเป็นไลบรารี่แบบโอเพ่นซอร์ส อย่างไรก็ตามดูเหมือนว่ามีอุปสรรคบางอย่างที่จะข้ามไปจากโครงการส่วนตัวที่ใช้งานได้ไปจนถึงห้องสมุดที่สามารถติดตั้งและใช้งานได้โดยไม่เจ็บปวด คำถามนี้เกี่ยวกับขั้นตอนแรกที่ฉันควรทำเพื่อเริ่มทำงานสู่รุ่นสาธารณะ ขณะนี้ฉันมีที่เก็บคอมไพล์เดียวซึ่งมีรหัสของฉันที่ใช้ไลบรารีรวมทั้งไลบรารีเองและฉันใช้ git เป็นปุ่มเลิกทำฉุกเฉินในกรณีที่มีอะไรผิดพลาด ทั้งหมดนี้ใช้งานได้ดีสำหรับผู้ใช้คนเดียว แต่เห็นได้ชัดว่าไม่เหมาะสมถ้าฉันต้องการปล่อย ที่ฉันต้องการจะจบคือห้องสมุดของฉันอยู่ในที่เก็บแยกต่างหากและสามารถติดตั้งโดยผู้อื่นโดยใช้pipและมี API ที่มั่นคง การเรียนรู้ที่จะใช้ setuptools เป็นต้นอาจไม่ยากเมื่อฉันถึงจุดที่ต้องการเผยแพร่มัน - ปัญหาของฉันคือการรู้ว่าฉันควรทำงานอย่างไรเพื่อที่จะไปถึงจุดนั้น ดังนั้นคำถามของฉันคือขั้นตอนแรกที่ควรทำเพื่อเริ่มเตรียมโครงการห้องสมุด Python สำหรับการบริโภคสาธารณะคืออะไร ฉันจะจัดระเบียบโครงสร้างไดเรกทอรีของฉัน, git repository และอื่น ๆ เพื่อที่จะเริ่มทำงานในที่สาธารณะต่อการเปิดตัวไลบรารี่? โดยทั่วไปแล้วจะมีประโยชน์มากหากมีทรัพยากรที่ทราบว่ามีประโยชน์เมื่อพยายามทำสิ่งนี้เป็นครั้งแรก ตัวชี้ไปยังแนวปฏิบัติที่ดีที่สุดและข้อผิดพลาดที่ควรหลีกเลี่ยง ฯลฯ จะเป็นประโยชน์อย่างมาก การชี้แจงบางอย่าง:คำตอบปัจจุบันกำลังตอบคำถามตามแนวของ "ฉันจะทำให้ห้องสมุด Python ของฉันเป็นที่ดีสำหรับผู้อื่นในการใช้งานได้อย่างไร" สิ่งนี้มีประโยชน์ แต่แตกต่างจากคำถามที่ฉันตั้งใจจะถาม ขณะนี้ฉันกำลังเริ่มต้นการเดินทางที่ยาวนานเพื่อปล่อยโครงการของฉัน แกนกลางของการทำงานของฉัน (และทำงานได้ดีจริงๆ) แต่ฉันรู้สึกท่วมท้นจากจำนวนงานที่ทำอยู่ข้างหน้าของฉันและฉันกำลังมองหาคำแนะนำเกี่ยวกับวิธีนำทางกระบวนการ ตัวอย่างเช่น: ขณะนี้รหัสห้องสมุดของฉันอยู่คู่กับรหัสเฉพาะโดเมนของฉันที่ใช้งาน มันอาศัยอยู่ในโฟลเดอร์ย่อยและแชร์ที่เก็บ git เดียวกัน ในที่สุดมันจะต้องถูกทำให้เป็นไลบรารีแบบสแตนด์อะโลนและใส่ลงในที่เก็บของมันเอง …

1
วิธีการจัดการกับฟังก์ชั่นที่ผิดในรหัสการผลิต?
ฉันเพิ่งเจอห้องสมุด Python ใน GitHub ไลบรารี่นั้นยอดเยี่ยม แต่มีการพิมพ์ผิดที่หนึ่งในชื่อฟังก์ชั่น ขอเรียกว่าในขณะที่มันควรจะเป็นdummy_fuction() dummy_function()ฟังก์ชั่นนี้ "แน่นอน" และมักใช้ในระบบฝังตัว สิ่งแรกที่ควรคำนึงถึงคือการเพิ่มรุ่นที่สองของฟังก์ชั่นที่มีชื่อที่ถูกต้องและเพิ่มคำเตือนการเลิกใช้ในรุ่นแรกสำหรับรุ่นถัดไป คำถามสามข้อ: แนวทางข้างต้นอาจมีผลที่ไม่ตั้งใจหรือไม่? มีวิธีการมาตรฐานในการแก้ไขปัญหานี้หรือไม่? ควรมีคำเตือนใด ๆ เกี่ยวกับการคัดค้านทิ้งไว้นานเท่าใด

3
ทำไมไม่มีตัวดัดแปลงการเข้าถึงที่ชัดเจนใน Python:
หาก 'ชัดเจนดีกว่านัย' เหตุใดจึงไม่มีการปรับเปลี่ยนการเข้าถึงอย่างชัดเจนใน Python: สาธารณะการป้องกันส่วนตัว ฯลฯ ฉันรู้ว่าความคิดนี้คือโปรแกรมเมอร์ควรรู้ว่าต้องทำอะไรผ่านคำใบ้ - ไม่จำเป็นต้องใช้ 'กำลังดุร้าย' แต่ IMO 'Encapsulation' หรือ 'การซ่อนข้อมูล' ไม่เพียง แต่จะช่วยให้ผู้คนออกไปมันเป็นคำถามขององค์กรและโครงสร้าง: เลเยอร์การพัฒนาของคุณควรมีการกำหนดขอบเขตและเส้นขอบที่กำหนดขอบเขตได้เองอย่างชัดเจนเหมือนกับระบบทางกายภาพ ใครบางคนโปรดช่วยฉันออกมาที่นี่พร้อมคำอธิบายที่ชัดเจนว่าทำไมข้อ จำกัด การเข้าถึงจึงบอกเป็นนัยมากกว่าชัดเจนใน Python ภาษาที่ดูเหมือนใกล้จะสมบูรณ์แบบ แก้ไข: จนถึงตอนนี้ฉันเห็นคำตอบที่เสนอมา 3 ข้อแล้วและฉันก็รู้ว่าคำถามของฉันมี 2 ส่วน: ทำไมไม่มีคำสำคัญเช่น private def myFunc(): dostuff.... แทน IMO ผู้น่าเกลียดและยากที่จะพิมพ์ขีดล่าง แต่นั่นไม่ใช่ประเด็นสำคัญ ที่สำคัญกว่า: เหตุใดตัวดัดแปลงการเข้าถึงเหล่านี้จึงเป็นเพียง 'คำแนะนำ' หรือคำแนะนำเท่านั้นและไม่บังคับใช้ มันจะยากที่จะเปลี่ยนในภายหลัง มันง่ายมากที่จะเปลี่ยน 'ป้องกัน' เป็น 'สาธารณะ' - และถ้าคุณมีเครือข่ายการถ่ายทอดที่ซับซ้อนที่ทำให้มันยากคุณมีการออกแบบที่ไม่ดี - …

3
เหตุใดข้อความข้อผิดพลาดเทมเพลต C ++ จึงน่ากลัวมาก
เทมเพลต C ++ มีชื่อเสียงในด้านการสร้างข้อความแสดงข้อผิดพลาดที่ยาวและไม่สามารถอ่านได้ ฉันมีความคิดทั่วไปว่าทำไมข้อความแสดงข้อผิดพลาดแม่แบบใน C ++ จึงแย่มาก โดยพื้นฐานแล้วปัญหาคือว่าข้อผิดพลาดจะไม่ถูกเรียกจนกระทั่งคอมไพเลอร์พบไวยากรณ์ที่ไม่ได้รับการสนับสนุนจากบางประเภทในแม่แบบ ตัวอย่างเช่น: template <class T> void dosomething(T& x) { x += 5; } หากTไม่รองรับ+=ผู้ปฏิบัติงานคอมไพเลอร์จะสร้างข้อความแสดงข้อผิดพลาด และหากสิ่งนี้เกิดขึ้นลึกลงไปในห้องสมุดบางแห่งข้อความแสดงข้อผิดพลาดอาจยาวหลายพันบรรทัด แต่แม่แบบ C ++ นั้นเป็นเพียงกลไกสำหรับการพิมพ์เป็ดเวลาคอมไพล์ ข้อผิดพลาดแม่แบบ C ++ เป็นแนวคิดคล้ายกับข้อผิดพลาดประเภทรันไทม์ที่อาจเกิดขึ้นในภาษาแบบไดนามิกเช่น Python ตัวอย่างเช่นพิจารณารหัสไพ ธ อนต่อไปนี้: def dosomething(x): x.foo() ที่นี่หากxไม่มีfoo()วิธีใดตัวแปลภาษา Python จะแสดงข้อยกเว้นและแสดงการติดตามสแต็กพร้อมกับข้อความแสดงข้อผิดพลาดที่ค่อนข้างชัดเจนซึ่งระบุถึงปัญหา แม้ว่าข้อผิดพลาดจะไม่ถูกเรียกใช้จนกว่าล่ามจะอยู่ลึกเข้าไปในฟังก์ชั่นของห้องสมุด แต่ข้อความข้อผิดพลาดเกี่ยวกับรันไทม์ยังไม่ใกล้เคียงเท่าที่อาเจียนไม่สามารถอ่านได้โดยคอมไพเลอร์ C ++ ทั่วไป แล้วทำไมคอมไพเลอร์ C ++ ไม่สามารถบอกได้ชัดเจนว่าเกิดอะไรขึ้น …

3
วิธีการจัดเก็บข้อมูลชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพ
ฉันต้องการจัดเก็บและสามารถสืบค้นข้อมูลอนุกรมเวลาจำนวนมากได้ คุณสมบัติของข้อมูลมีดังนี้: จำนวนซีรีส์: ประมาณ 12.000 (หนึ่งหมื่นสองพัน) จำนวนจุดข้อมูลทั่วโลก: ประมาณ 500,000 ต่อเดือน (ห้าร้อยล้าน) ประเภทค่าผสม: จุดข้อมูลส่วนใหญ่เป็นค่าจุดลอยตัวส่วนที่เหลือเป็นสตริง ระยะเวลาการสุ่มตัวอย่าง: ตัวแปรระหว่างซีรี่ส์และภายในซีรี่ส์ การประทับเวลา: ความแม่นยำมิลลิวินาที ระยะเวลาการเก็บข้อมูล: หลายปีโดยไม่มีการลดลงหรือการสุ่มตัวอย่าง คลังข้อมูลจะต้องถูกสร้างขึ้นในแบบเรียลไทม์ แต่มีความล่าช้าพอสมควร (~ 1 ชั่วโมง) เป็นที่ยอมรับ ข้อมูลที่ผ่านมาสามารถสร้างใหม่ได้ถ้าต้องการ แต่มีค่าใช้จ่ายสูง บางครั้ง แต่ค่อนข้างน้อยข้อมูลในอดีตบางอย่างจำเป็นต้องได้รับการอัปเดต คุณสมบัติของข้อความค้นหาที่จินตนาการ: ข้อความค้นหาส่วนใหญ่ที่มีข้อมูลจะเป็นแบบสอบถามแบบอิงตามเวลา ตั้งแต่วันหนึ่งถึงหลายเดือน / ปี 90% + จะสอบถามเกี่ยวกับข้อมูลล่าสุด ข้อกำหนดอื่น ๆ : การแก้ปัญหาจะต้องเป็นฟรีในเบียร์ฟรีและโอเพนซอร์สโดยเฉพาะอย่างยิ่ง ความคิดเริ่มต้นของฉันคือการใช้ PyTables / Pandas กับไฟล์ HDF5เพื่อเก็บแบ็คเอนด์แทนฐานข้อมูล SQL คำถาม: สมมติว่า …

5
การเขียนโปรแกรมใน Python เร็วกว่าใน C, C ++ หรือ Java หรือไม่? [ปิด]
มีความเชื่ออย่างกว้างขวางในหมู่โปรแกรมเมอร์ว่ายิ่งภาษามีพลวัตและพิมพ์ผิดมากเท่าไรโปรแกรมเมอร์ก็ยิ่งมีประสิทธิผลมากขึ้นเท่านั้น Guido van Rossum เขียนเกี่ยวกับประสิทธิภาพการเขียนโปรแกรมโดยใช้ python ในปี 1998และค้นหาในเว็บฉันยังเห็นผู้คนที่อ้างสิทธิ์นี้: วากยสัมพันธ์รหัสหลามดูเหมือนว่ารหัสหลอกที่ปฏิบัติการได้ การพัฒนาโปรแกรมโดยใช้ Python เร็วกว่าการใช้ C / C ++ 5-10 เท่าและเร็วกว่าการใช้ Java 3-5 เท่า ในหลายกรณีต้นแบบของแอปพลิเคชันสามารถเขียนใน Python โดยไม่ต้องเขียนโค้ด C / C ++ / Java ใด ๆ บ่อยครั้งที่ต้นแบบมีฟังก์ชั่นเพียงพอและทำงานได้ดีพอที่จะส่งมอบเป็นผลิตภัณฑ์สุดท้ายประหยัดเวลาในการพัฒนาอย่างมาก ในบางครั้งต้นแบบสามารถแปลบางส่วนหรือทั้งหมดเป็น C ++ หรือ Java - Python เป็นวัตถุเชิงธรรมชาติทำให้การแปลเป็นกระบวนการที่ตรงไปตรงมา ปัญหานี้ได้รับการประเมินทางวิทยาศาสตร์อย่างเหมาะสมหรือไม่? ถ้าไม่ใช่สำหรับไพ ธ อนบางทีสำหรับภาษาสคริปต์พี่น้องอย่างruby , perlหรือphp ? ฉันไม่ได้มองหาการหาเหตุผลเข้าข้างตนเองการเปรียบเทียบหรือคำอธิบายว่าทำไมมันอาจจะตอบยากถ้ามันเป็นความเห็นของนักวิจัยหรือผู้เชี่ยวชาญที่ใช้เวลาในการพิจารณาปัญหา ตอนแรกฉันถามคำถามนี้ที่skeptics.SEและมีคนแนะนำว่าฉันควรถามที่นี่ด้วย

2
เหตุใดโหมดการขึ้นบรรทัดใหม่แบบสากลจึงเลิกใช้ใน Python
ฉันเพิ่งสังเกตเห็นว่าคุณสมบัติการขึ้นบรรทัดใหม่สากลของการดำเนินการด้านไฟล์ดูเหมือนจะใกล้หมดแล้ว เอกสารประกอบสำหรับ Python 3.5 open's modeพารามิเตอร์ที่บ่งชี้ว่ามันเลิกใช้: 'U' โหมด newlines สากล (คัดค้าน) อย่างน้อยที่สุดกลับเป็น Python 3.2 openมีคำเตือน "ความเข้ากันได้ย้อนหลังเท่านั้น" ที่คล้ายกันเมื่อบันทึกการใช้modeอาร์กิวเมนต์: 'U' โหมดการขึ้นบรรทัดใหม่แบบสากล (สำหรับความเข้ากันได้แบบย้อนกลับไม่ควรใช้ในรหัสใหม่) แม้จะอยู่ใน Python 2.7 io.openเป็นคำเตือนที่คล้ายกันจะอยู่ในเอกสารของ เหตุผลนี้คืออะไร
26 python  io  deprecation 

4
วิธีการพัฒนาส่วนหน้า (UI) สำหรับเว็บไซต์ Django ของฉัน
ฉันกำลังเรียนรู้ Django และใหม่ต่อการพัฒนาเว็บ โปรดขอโทษด้วยถ้าคุณพบว่าคำถามนี้โง่เกินไป ดังนั้นฉันกำลังสร้างแอปพลิเคชัน Facebook โดยใช้ Django ซึ่งฉันต้องการโฮสต์ใน Google App Engine โครงการจะเน้นที่การอ่านฟีด RSS / Atom ของเว็บไซต์ใด ๆ (นั่นคือทั้งหมดที่ฉันสามารถพูดได้ตอนนี้) ฉันมั่นใจในการประมวลผลไฟล์ RSS / Atom แต่ฉันกังวลเกี่ยวกับส่วนหน้า (ส่วนต่อประสานผู้ใช้) - "ส่วนการออกแบบ" ฉันไม่ทราบว่า HTML / CSS / JavaScript (ฉันสามารถจัดการกับสิ่ง HTML ง่ายๆ แต่ไม่นำไปสู่สิ่งที่ออกแบบ) ก่อนอื่นฉันคิดว่าการใช้เครื่องมืออย่าง Dreamweaver หรือซอฟต์แวร์ที่เทียบเท่ากันสำหรับการออกแบบ UI แต่เมื่อฉันเริ่มเรียนรู้ django และเริ่มเข้าสู่มันดูเหมือนว่าจะเป็นสิ่งที่ "เป็นไปไม่ได้" ดังนั้น, ฉันจะออกแบบส่วน UI ของเว็บไซต์ได้อย่างไร ฉันไม่สามารถใช้เครื่องมืออย่าง …

5
วิธีให้โปรแกรมที่แตกต่างกันสองภาษาที่มีสองภาษาต่างกันโต้ตอบกันอย่างไร
ฉันไม่รู้ว่ามันกว้างเกินไปหรือไม่ แต่ฉันเป็นโปรแกรมเมอร์อายุน้อยที่ยังเรียนอยู่ในวิทยาลัย ฉันรู้สึกว่าฉันมีภาษาที่ดีพอสำหรับภาษาอื่นและมีพื้นฐานที่ดี แต่ฉันสะดุดที่จะคิดว่าถ้าเช่นฉันพยายามสร้างโปรแกรมและบอกว่าฉันเขียนส่วนหนึ่งในหลามเพียงเพราะมันง่ายและทำงาน แต่โปรแกรมนี้จะต้องได้รับผลลัพธ์จากโปรแกรมอื่นที่ฉันเขียน ใน C และฉันใช้ C เนื่องจากความเร็ว ฉันไม่แน่ใจว่าจะให้โปรแกรมและภาษาที่ต่างกันสองแบบโต้ตอบกันอย่างไรเพื่อสร้างโปรแกรมทั้งหมดหนึ่งโปรแกรม ฉันคิดเหมือนว่าคุณสามารถเขียนไฟล์ได้ แต่ถ้าโปรแกรมไพ ธ อนและโปรแกรม C เข้าถึงไฟล์ฉันจะต้องคิดถึงล็อค เวลาส่วนใหญ่ที่ฉันทำนี่คือการนำเข้าไฟล์เข้าสู่โปรแกรม แต่ในกรณีนั้นพวกเขาเป็นภาษาเดียวกันดังนั้นมันจึงเป็นเรื่องง่ายฉันแค่ใช้ฟังก์ชั่นการนำเข้า แต่ด้วยสองภาษา / โปรแกรมที่โต้ตอบกันเพื่อสร้างผลลัพธ์หนึ่งเหนียว . ฉันกำลังคิดเกี่ยวกับคำถามนี้เพราะฉันกำลังคิดที่จะดำน้ำในการสร้างแอปพลิเคชันเว็บขั้นพื้นฐานเพียงเพื่อเรียนรู้ แต่ฉันไม่รู้ว่าจะพูดไฟล์จาวาสคริปต์แบบโต้ตอบกับสิ่งที่ฉันเขียนในภาษาไพ ธ อนหรือในทางกลับกันได้อย่างไร ฉันรู้สึกเหมือนฉันกำลังพลาดอะไรบางอย่างที่นี่และไม่เข้าใจ ขออภัยถ้าคำถามนี้กว้างเกินไป แต่ฉันไม่พบคำตอบที่ชัดเจนออนไลน์ฉันพยายามค้นหา opensource webapp แต่ไม่เข้าใจคำตอบจริงๆจากนั้นให้อภัยฉันอีกครั้งถ้าคำถามดูเหมือนว่าฉันคิดว่าโง่ นี่เป็นสถานที่ที่ดีที่จะถามฉันรักการอ่านบน stackexchange ขอบคุณสำหรับการตอบกลับใด ๆ
26 python  c 

2
คุณลักษณะความหมายของ Python (และภาษาไดนามิกอื่น ๆ ) มีส่วนทำให้ความช้าของมันคืออะไร?
ฉันไม่รู้จัก Python มาก ฉันพยายามที่จะเข้าใจอย่างแม่นยำมากขึ้นว่าคุณลักษณะที่แน่นอนของภาษาแบบไดนามิก (à la Python, Lua, Scheme, Perl, Ruby, .... ) กำลังบังคับให้การใช้งานของพวกเขาช้า ในกรณีนี้ Lua 5.3 เครื่องจักร metatableจะทำให้ Lua ค่อนข้างสังหรณ์ใจ แต่ในทางปฏิบัติ Lua มีข่าวลือว่าค่อนข้างเร็ว (และเร็วกว่า Python) นอกจากนี้ผมมีสัญชาตญาณ (อาจจะผิดอย่างใดอย่างหนึ่ง) ว่าตั้งแต่โปรเซสเซอร์ปัจจุบันหน่วยความจำได้ช้ากว่าการคำนวณดิบ (เข้าถึงหน่วยความจำแคชพลาดความต้องการในเวลาเดียวกันเป็นหลายร้อยดำเนินการทางคณิตศาสตร์), พิมพ์แบบไดนามิกการตรวจสอบ (เมนูif (value->type != INTEGER_TAG) return;ใน C parlance) สามารถวิ่งได้ค่อนข้างเร็ว แน่นอนว่าการวิเคราะห์โปรแกรมทั้งหมด (เช่นการดำเนินการตามโครงการของสตาลิน ) สามารถทำให้การใช้ภาษาแบบไดนามิกเป็นนักแปลทำงานได้อย่างรวดเร็ว แต่ลองทำเป็นว่าฉันไม่มีเวลาออกแบบตัววิเคราะห์โปรแกรมทั้งหมดในตอนแรก (ฉันกำลังออกแบบภาษาไดนามิกในจอภาพ MELTของฉันและบางส่วนจะถูกแปลเป็น C)

3
ที่ควรวางตรรกะทางธุรกิจหลามใน django
ฉันเพิ่งเริ่มเรียนรู้การพัฒนา Django / Python / Web ปัญหานี้ทำให้ฉันหนักใจมาระยะหนึ่งแล้ว ฉันกำลังสร้างแอปพลิเคชันที่มีแม่แบบหลายรายการใน Django ฉันมี views.py ซึ่งเป็นเพียงการแสดงผลการตอบสนองต่อเทมเพลตนั้นและฉันมี models.py ที่ฉันได้จัดทำฐานข้อมูลของฉัน ในหนึ่งในเทมเพลตของฉันฉันต้องอัปโหลดภาพ (ซึ่งฉันสามารถทำได้) และฉันต้องเรียกใช้ลอจิกซึ่งขึ้นอยู่กับคุณสมบัติของภาพที่อัปโหลด (ยังไม่เสร็จ) ตรรกะนี้เกี่ยวข้องกับการคำนวณจำนวนมาก หลังจากทำการคำนวณตรรกะควรส่งคืนข้อมูล (พิกัด) ที่ประมวลผลไปยังเทมเพลต ฉันสามารถดำเนินการทั้งหมดนี้ได้สำเร็จในแอปพลิเคชันหลามแบบสแตนด์อโลนสำหรับการเรียกใช้ไฟล์หลามหลังจากที่อื่น อย่างไรก็ตามเนื่องจากตอนนี้ฉันต้องการทำให้เว็บแอปพลิเคชันนี้ฉันเริ่มใช้เฟรมเวิร์ก Django ฉันทำการค้นหาจำนวนมาก แต่ฉันยังคงไม่สามารถระบุได้ว่าฉันควรวางไฟล์ Python นี้ตรงไหนกับตรรกะทั้งหมด ฉันควรจะมีไฟล์ที่ใช้คลาสอื่น(logic.py)และเรียกมันจากview.py? ฉัน googled และพบว่านักพัฒนาจำนวนมากวางตรรกะทางธุรกิจของตนใน models.py ใน Django อย่างไรก็ตามฉันรู้สึกว่ามันไม่ถูกต้องเพราะรูปแบบควรสื่อสารกับส่วนหลังเท่านั้น ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมขอบคุณล่วงหน้า

2
Python Runtime ทำงานอย่างไร
ฉันมีปัญหาบางอย่างที่เข้าใจแนวคิดของ a runtime libraryโดยเฉพาะ Python ดังนั้นผมจึงได้เขียนบางโปรแกรม Hello World python ./hello_world.pyหลามและตั้งใจที่จะดำเนินการได้ดังนั้นฉันเขียน เกิดอะไรขึ้นระหว่างฉันกดปุ่ม Enter และรหัสเครื่องที่สร้างจากรหัสไพ ธ อนของฉันที่ถูกเรียกใช้งานบน CPU ของฉัน และสิ่งนี้เกี่ยวข้องกับระบบ Python runtime และ / หรือไลบรารี่อย่างไร?
26 python  runtime 

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

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