เขียนโค้ด Python สองสามบรรทัดX
ซึ่งไม่ได้อ้างอิงตัวแปรโกลบอลใด ๆ เช่นนั้น
def method():
X
print(a)
method()
พิมพ์1
แต่
def method():
X
X
print(a)
method()
2
พิมพ์
ดังนั้นฉันเกลียดที่จะเป็น stickler แต่ดูเหมือนว่าvars
และlocals
เป็นตัวแปรทั่วโลกใน Python:
def test_global_1():
global vars, locals
vars = lambda: 2
locals = lambda: 3
def test_global_2():
print(vars())
print(locals())
test_global_1()
test_global_2()
นอกจากนี้ดูเหมือนว่าผู้คนต้องการเห็นเกณฑ์การชนะอย่างมีวัตถุประสงค์สำหรับปริศนาเช่นนี้ ความยาวของรหัสไม่ได้ให้ความรู้สึกที่นี่ดังนั้นบางทีเราอาจสร้างระบบของจุดบราวนี่สำหรับคุณสมบัติใหม่ ๆ ฉันไม่แน่ใจว่าสิ่งเหล่านี้อาจเป็นอะไร แต่นี่เป็นการเริ่มต้น:
- +1 สำหรับ globals จริง ๆ อย่างแท้จริง (ไม่
vars
หรือlocals
) - +1 สำหรับการเป็นคนแรกที่โพสต์เทคนิคเฉพาะ
- +1 สำหรับโซลูชันที่สั้นที่สุดที่โพสต์
- +1 สำหรับการแก้ปัญหาที่เกี่ยวข้องกับคำสั่ง Python เพียงคำเดียว
- +1 สำหรับ "แฮ็ก" ที่น่าสนใจเช่นเข้าร่วมที่ศัพท์ที่ไม่ใช่ขอบเขต
- +1 สำหรับการไม่ใช้ข้อยกเว้น
และถ้าคุณคิดมากกว่านี้คุณสามารถแก้ไขคำถามนี้เพื่อเพิ่มลงในรายการ
สามารถแก้ไขปัญหานี้ได้โดยไม่ใช้ข้อยกเว้นและไม่ใช้ globals เช่นvars
และlocals
? ฉันสงสัยว่ามันสามารถทำได้ถึงแม้ว่าฉันจะไม่ได้คิดออกยังไงว่า ...
X
แต่ก็มีตัวเลือกอื่น