python - 如何修复未定义的“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
解决方案
您必须先导入本地文件,然后才能使用它 - 即使该文件位于同一目录中。这应该有效:
>>> import Person
但是现在,Person
代表文件的内容Person.py
。要真正进入Person
该类,您需要显式调用它:
>>> p1 = Person.Person("i", "j", 20)
您可以通过从文件中导入类 来解决此问题:Person
Person.py
>>> from Persion import Person
>>> p1 = Person("i", "j", 20)
推荐阅读
- oracle-call-interface - 使用 OCI Java SDK 批量上传和下载
- python - 如何根据第三列绘制不同颜色的线图?(关键错误:0)
- javascript - 如何解决与 react-native-device-info 相关的 React Native Firebase 错误 (messaging().getToken())
- postgresql - 逻辑解码 - postgres - 多种输出格式
- sql - Go sql从扫描返回多行
- salesforce-lightning - 即使在页面加载后,Salesforce 闪电自定义标签也没有更新
- java - java抽象如何在实时项目中工作
- c# - 我怎么能用这个函数来计算 CHECKSUM
- javascript - IOS Safari,检查页面是否在 iframe 内加载
- angular - 具有 n 个自动完成输入的 Angular nestead 表单