5
การเข้าถึงตัวแปรคลาสจากรายการความเข้าใจในการกำหนดคลาส
คุณเข้าถึงตัวแปรคลาสอื่น ๆ ได้อย่างไรจากรายการความเข้าใจภายในนิยามคลาส? การทำงานต่อไปนี้ใน Python 2 แต่ล้มเหลวใน Python 3: class Foo: x = 5 y = [x for i in range(1)] Python 3.2 ให้ข้อผิดพลาด: NameError: global name 'x' is not defined การพยายามFoo.xไม่ทำงานเช่นกัน ความคิดเห็นเกี่ยวกับวิธีการทำเช่นนี้ใน Python 3 ตัวอย่างแรงจูงใจที่ซับซ้อนกว่าเล็กน้อย: from collections import namedtuple class StateDatabase: State = namedtuple('State', ['name', 'capital']) db = [State(*args) …