首页 > 解决方案 > 如何修复未定义的“NameError”“Person”

问题描述

每当我从类 Person 创建实例/对象时,我都会收到 NameError

我在终端上创建了一个保存为 Person.py 的类我已经使用'python -i'导入了所有内容我输入了 P1=Person("name","name",20) 但我收到以下错误

 python -i
Python 2.7.15+ (default, Nov 27 2018, 23:36:35) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> p1=Person("i","j",20)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Person' is not defined

代码:

class Person:


    #constructor
    def __init__(self,first_name,last_name,age):
        self.first_name = first_name
        self.last_name = last_name
        self.age = age

    #set first_name
    def setFirst_name(self,first_name):
        self.first_name = first_name

    #get first_name
    def getFirst_name(self):
        return self.first_name

    #set last_name
    def setLast_name(self,last_name):
        self.last_name = last_name

    #get last_name
    def getLast_name(self):
        return self.last_name

    #set age
    def setAge(self,age):
        self.age = age

    #get age
    def getAge(self):
        return self.age

    #get full_name
    def getFull_name(self):
        return self.first_name + " " + self.last_name

    #get details
    def getDetails(self):
        details = {'First Name':self.first_name,'Last Name':self.last_name,'Age':self.age} 

我希望 P1 创建一个 Person 对象,这样当我调用函数“getDetails()”时,它应该打印以下内容

名:i 姓:j 年龄:20

标签: python

解决方案


您必须先导入本地文件,然后才能使用它 - 即使该文件位于同一目录中。这应该有效:

>>> import Person

但是现在,Person代表文件的内容Person.py。要真正进入Person该类,您需要显式调用它:

>>> p1 = Person.Person("i", "j", 20)

您可以通过从文件中导入 来解决此问题:Person Person.py

>>> from Persion import Person
>>> p1 = Person("i", "j", 20)

推荐阅读