#C:/Python32
class Person:
def __init__(self, name = "joe" , age= 20 , salary=0):
self.name = name
self.age = age
self.salary = salary
def __printData__(self):
return " My name is {0}, my age is {1} , and my salary is {2}.".format(self.name, self.age, self.salary)
print(Person)
class Employee(Person):
def __init__(self, name, age , salary):
Person. __init__ (self,name = "Mohamed" , age = 20 , salary = 100000)
def __printData__(self):
return " My name is {0}, my age is {1} , and my salary is {2}.".format(self.name, self.age, self.salary)
print(Employee)
p= Person()
e = Employee()
Q
错误:没有人发现
-3
A
回答
5
你的问题可以简化为:
class Person:
print(Person)
这将引发NameError
。构建类时,类的主体将被执行并放置在特殊的命名空间中。该名称空间然后传递给type
,它负责实际创建类。
在你的代码,你想print(Person)
Person
实际上已创建的类(在其中正在执行类的主体阶段 - 它被传递给type
之前并绑定到类名)之前这导致了NameError
。
0
看起来您希望在您的类上调用print时返回某些信息,并且您还希望在创建该类的实例时打印该信息。你要这样做的方式是为你的班级定义一个__repr__
(或__str__
,详情请参阅Difference between __str__ and __repr__ in Python)。然后,每次打印都会在您班级的一个实例上调用,它将打印该方法返回的内容。然后你可以添加一行到你的__init__
方法,打印实例。在该类中,当前实例由特殊的self
关键字引用,该类的名称仅在该类的范围之外定义在主名称空间中。所以你应该拨打print(self)
而不是print(Person)
。这里是你的例子的一些代码:
class Person:
def __init__(self, name = "joe" , age= 20 , salary=0):
self.name = name
self.age = age
self.salary = salary
print(self)
def __repr__(self):
return " My name is {0}, my age is {1} , and my salary is {2}.".format(self.name, self.age, self.salary)
joe = Person()
>>> My name is joe, my age is 20 , and my salary is 0.
相关问题
- 1. 错误`Qt_5' 没有发现
- 2. assertRaises没有发现错误
- 3. 没有applet发现错误?
- 4. 没有类错误发现错误
- 5. 没有发射活动发现错误
- 6. xamarin形式没有发现机器人的资源错误
- 7. 没有python发现错误吗?
- 8. FindBugs没有显示发现的错误
- 9. 错误,没有权利发现捆绑“”
- 10. 没有资源发现错误
- 11. 错误:cardElevation和cardUseCompatPadding没有发现
- 12. Laravel 4.2类没有发现错误
- 13. 的ffmpeg, '协议没有发现' 错误
- 14. 罐没有发现错误的Android
- 15. Catch块没有发现错误
- 16. 404错误 - traceur没有发现
- 17. Android:没有发现类定义错误
- 18. 错误:库没有发现-lUAirship-1.3.3
- 19. jQuery的AJAX没有发现错误
- 20. 符号像_sqlite3_open没有发现错误
- 21. cx_Freeze没有发现错误,蟒蛇
- 22. Scrapy蜘蛛没有发现错误
- 23. “没有标签,发现”错误
- 24. 灰烬错误:没有模型,发现
- 25. 没有发现AWS凭据错误
- 26. 编译错误,subliminal.h没有发现
- 27. 电梯的错误,没有发现
- 28. Zend_Form_Element_File(没有修饰器发现错误)
- 29. 致命错误:类“CakeNumber”没有发现
- 30. 没有发现虚拟机错误:Eclipse
为什么你有Python32 shebang和python-2.7标签? – geoffspear