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

23
Python idiom เพื่อส่งคืนไอเท็มแรกหรือไม่มี
ฉันแน่ใจว่ามีวิธีที่ง่ายกว่าในการทำเช่นนี้ซึ่งไม่ได้เกิดขึ้นกับฉัน ฉันกำลังเรียกวิธีการมากมายที่ส่งคืนรายการ รายการอาจว่างเปล่า หากรายการไม่ว่างฉันต้องการส่งคืนรายการแรก; มิฉะนั้นฉันต้องการคืนค่าไม่มี รหัสนี้ใช้งานได้: my_list = get_list() if len(my_list) > 0: return my_list[0] return None สำหรับฉันแล้วดูเหมือนว่าควรมีสำนวนแบบบรรทัดเดียวที่เรียบง่ายสำหรับการทำสิ่งนี้ แต่สำหรับชีวิตของฉันฉันไม่สามารถคิดได้ มีอะไรบ้าง แก้ไข: เหตุผลที่ฉันกำลังมองหานิพจน์บรรทัดเดียวที่นี่ไม่ใช่ว่าฉันชอบรหัสตัวอักษรที่เหลือเชื่อ แต่เพราะฉันต้องเขียนโค้ดจำนวนมากเช่นนี้: x = get_first_list() if x: # do something with x[0] # inevitably forget the [0] part, and have a bug to fix y = get_second_list() if y: …

2
การปลดวัตถุ python 2 ด้วย python 3
ฉันสงสัยว่ามีวิธีโหลดวัตถุที่ถูกดองใน Python 2.4 ด้วย Python 3.4 หรือไม่ ฉันใช้ 2to3 กับรหัสเดิมของ บริษัท เป็นจำนวนมากเพื่ออัปเดตให้เป็นปัจจุบัน เมื่อทำสิ่งนี้เสร็จแล้วเมื่อเรียกใช้ไฟล์ฉันได้รับข้อผิดพลาดต่อไปนี้: File "H:\fixers - 3.4\addressfixer - 3.4\trunk\lib\address\address_generic.py" , line 382, in read_ref_files d = pickle.load(open(mshelffile, 'rb')) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 1: ordinal not in range(128) เมื่อมองไปที่วัตถุดองในการโต้แย้งมันเป็นdictใน a dictที่มีคีย์และค่าประเภทstrที่มีคีย์และค่าประเภท คำถามของฉันคือ: มีวิธีโหลดวัตถุเดิมที่ดองใน python 2.4 ด้วย …

4
วิธีเปิด / ปิดไฟล์ใน python 2.4 อย่างปลอดภัย
ฉันกำลังเขียนสคริปต์ขนาดเล็กสำหรับใช้บนเซิร์ฟเวอร์ของเราโดยใช้ Python เซิร์ฟเวอร์ติดตั้ง Python 2.4.4 เท่านั้น ฉันไม่ได้เริ่มใช้ Python จนกระทั่ง 2.5 หมดดังนั้นฉันจึงคุ้นเคยกับแบบฟอร์ม: with open('file.txt', 'r') as f: # do stuff with f อย่างไรก็ตามไม่มีwithคำสั่งใด ๆก่อน 2.5 และฉันมีปัญหาในการค้นหาตัวอย่างเกี่ยวกับวิธีที่เหมาะสมในการล้างไฟล์ด้วยตนเอง แนวทางปฏิบัติที่ดีที่สุดในการกำจัดออบเจ็กต์ไฟล์อย่างปลอดภัยเมื่อใช้ python เวอร์ชันเก่าคืออะไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.