【问题标题】:Create an instance in a class in python在python中的类中创建一个实例
【发布时间】:2014-03-24 17:10:52
【问题描述】:

我正在尝试在 Python 中创建一个类的新实例。我在这里尝试了解决方案: Instances in python

但它没有用。所以,我的主要课程是

if __name__ == '__main__':
    Tim = Person
    movement = Person.walk()

其中“Person”是我要创建的类的名称和实例。它有我想使用的方法。

但我不断收到此错误:

Undefined Variable:Person

我还尝试在实际方法中声明类实例,而不是 init,但我得到了同样的错误。

欢迎提出任何建议。谢谢

【问题讨论】:

  • 这是一个奇怪的错误。您是否正确导入/定义 Person 类?另外,您可以通过调用它来实例化类:Person().

标签: python class methods


【解决方案1】:

更正:如果要创建该类的实例并使用该实例调用类内部的方法,请在类后使用括号。

if __name__ == '__main__':
    Tim = Person()
    movement = Tim.walk()

或者,但不太推荐

if __name__ == '__main__':
    movement = Person().walk()

【讨论】:

  • 我遇到了同样的错误。类必须在同一个文件中吗?也许这就是问题所在?它们在同一个目录中,只是不同的文件
  • @Blossom96 你必须先import Person 类才能使用它。
  • 是的,如果类不在同一个文件中,那么您需要导入模块,即定义类的文件。
  • 导入模块后,可以使用类为module.Class()
  • 能否请您阅读此docs.python.org/2/tutorial/modules.html 以了解如何导入模块。
【解决方案2】:

你只需要添加一些括号:

Tim = Person()

这告诉python访问构造函数。

您提供的代码告诉我您可能没有定义类Person。您的代码应该定义了class Person

class Person:
    def walk(self):
        print "I'm walking!"

if __name__ == "__main__":
    Time = Person
    movement = Person.walk()
    print movement

或者您需要致电importclass Person

from my_other_python_file import Person

if __name__ == "__main__":
    Time = Person
    movement = Person.walk()
    print movement

【讨论】:

    【解决方案3】:

    你需要有括号才能调用构造函数。

    Tim = Person()
    

    正如您现在所拥有的,Tim = Person 被解释为将尚未定义的变量 Person 的值分配给 Tim

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多