Skip to main content
 首页 » 编程设计

python之为什么我可以在 python 中乱写一些东西,而其他的却不能

2025年05月04日11webabcd

请看下面:

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 方法,而没有事先为这些字段设置值,您将收到错误消息。