【问题标题】:Instance is not defined despite being instantiated尽管已实例化,但未定义实例
【发布时间】:2020-02-18 09:23:22
【问题描述】:

我正在尝试创建一个Box2D body,我需要在一个函数中完成,所以我有这个非常简单的函数:

def create_car():
    my_Car = Car("Interesting parameters"))
    return my_Car
create_car()

然后我有这个主要的 PyGame 循环

running = True
while running:
    my_Car.steer()

steer() 正如定义所暗示的,是用 Car 类编写的方法 但是当我尝试运行代码时会引发此错误

my_Car() is not defined

我做错了什么,我该如何解决? 非常感谢

【问题讨论】:

    标签: python function oop


    【解决方案1】:

    从您的代码中,my_Car 是 create_car 函数内的局部变量。您必须执行my_Car = create_car() 之类的操作。

     my_Car = create_car()
     running = True
     while running:
         my_Car.steer()
    

    第一个带有解释的谷歌链接:https://www.techbeamers.com/python-namespace-scope/

    【讨论】:

      【解决方案2】:

      在函数内部定义的变量具有局部范围,这意味着它们不能从函数的外部世界访问。以下应该可以解决问题:

      def create_car():
          my_Car = Car("Interesting parameters")
          return my_Car
      
      
      if __name__ == '__main__':
      
          car = create_car()
      
          while True:            
              car.steer()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-07-28
        • 2021-02-06
        • 2019-08-18
        • 2019-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多