class Note:
nextseqNum = 0
def __init__(self):
self.text = str
self.dateCreated = datetime
self.dateRead = datetime
self.description = str
self.category = str
self.priority = int
self.hidden = bool
self.seqNum = nextseqNum
nextseqNum += 1
出于某种原因,它正在抛弃我
UnboundLocalError:局部变量' nextseqNum'以前引用过 分配
我不明白为什么。那就是你如何使共享类变得正确?
答案 0 :(得分:3)
需要在类上访问共享类变量 - 它不会成为类方法中的局部变量(这解释了错误消息):
self.seqNum = Note.nextseqNum
Note.nextseqNum += 1
有一些快捷方式:
self.seqNum = self.nextseqNum # Not found on self, so looked up on class.
Note.nextseqNum += 1
有效,因为如果在实例上找不到名称,则python会查看该类。如果您不想明确命名该类:
self.seqNum = self.__class__.nextseqNum # for new-style classes, type(self) == self.__class__
self.__class__.nextseqNum += 1