请看下面:
a = 5
print a + b
b = 4
当我尝试运行上面的代码时,它给出了一个错误: 追溯(最近一次通话): 文件“C:/Users/user/Documents/modules/ab.py”,第 2 行,位于 打印 a + b NameError: 名称 'b' 未定义
好的。 a + b 在定义 b 之前被调用。这意味着 Python 按顺序运行代码,从上到下开始。 但是,这个怎么样:
class Data:
def __init__(self):
self.debug_level = 9
self.assign = [0, 0, 0, 0]
self.days = 0
def create_days(self, startTime, endTime):
res = 0
try:
if self.final_days < self.maximum_days:
上面,self.final_days 和self.maximum_days 也没有定义,但它不会给出任何错误。背后的逻辑是什么?
最好的问候,
请您参考如下方法:
您实际上还没有“运行”代码。在您的示例中,您所拥有的只是 Data 类中的方法声明。在其中,Python 不会检查类字段是否存在,因为它们可能会在其他时间以其他方法设置(从这个意义上讲,Python 的类是可延展的)。
如果您尝试在 Data 类的新实例中运行您的 create_days 方法,而没有事先为这些字段设置值,您将收到错误消息。
