คำถามติดแท็ก side-effects

4
ทำไมตัวแปรระดับโลกถึงชั่วร้าย? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังพยายามค้นหาว่าเหตุใดการใช้globalจึงถือว่าเป็นการปฏิบัติที่ไม่ดีใน python (และในการเขียนโปรแกรมโดยทั่วไป) ใครสามารถอธิบาย? ลิงก์ที่มีข้อมูลเพิ่มเติมจะได้รับการชื่นชม

10
คำสั่ง if - การประเมินการลัดวงจรเทียบกับความสามารถในการอ่าน
บางครั้งคำสั่งจะมีความซับซ้อนมากกว่าหรือยาวดังนั้นเพื่อประโยชน์ของการอ่านมันจะดีกว่าที่จะดึงสายซับซ้อนก่อนifif เช่นนี้: if (SomeComplicatedFunctionCall() || OtherComplicatedFunctionCall()) { // do stuff } ในสิ่งนี้ bool b1 = SomeComplicatedFunctionCall(); bool b2 = OtherComplicatedFunctionCall(); if (b1 || b2) { //do stuff } (ตัวอย่างเช่นระบุไม่ใช่ว่าไม่ดีก็เพียงเพื่อประกอบการอธิบาย ... จินตนาการสายอื่น ๆ ที่มีข้อโต้แย้งหลายอื่น ๆ ) แต่ด้วยการสกัดนี้ฉันสูญเสียการประเมินการลัดวงจร (SCE) ฉันแพ้ SCE ทุกครั้งหรือไม่? มีสถานการณ์บางอย่างที่คอมไพเลอร์ได้รับอนุญาตให้ "ปรับให้เหมาะสม" และยังคงให้ SCE อยู่หรือไม่ มีวิธีการรักษาความสามารถในการอ่านที่ดีขึ้นของตัวอย่างข้อมูลที่สองโดยไม่สูญเสีย SCE หรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.