#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