我有下面的代碼,它具有以下兩個問題:主要方法在Python
Traceback (most recent call last):
File "C:\Users\v\workspace\first\src\tests.py", line 1, in <module>
class Animal:
File "C:\Users\v\workspace\first\src\tests.py", line 39, in Animal
File "C:\Users\v\workspace\first\src\tests.py", line 31, in main
dog = Animal()
NameError: global name 'Animal' is not defined
此代碼是從一個教程,並在本教程中正常工作。我有Python 2.7並使用Eclipse的PyDev插件。
class Animal:
__hungry = "yes"
__name = "no name"
__owner = "no owner"
def __init__(self):
pass
def set_owner(self,newOwner):
self.__owner= newOwner
return
def get_owner(self):
return self.__owner
def set_name(self,newName):
self.__name= newName
return
def get_name(self):
return self.__name
def noise(self):
print('errr')
return
def __hiddenmethod(self):
print("hard to find")
def main():
dog = Animal()
dog.set_owner('Sue')
print dog.get_owner()
dog.noise()
if __name__ =='__main__':main()
您能否提供該教程的鏈接?無論誰寫它,都應該被槍殺,或者至少被禁止再寫作。這不是*你如何在Python中編寫類屬性。 – 2012-01-10 21:54:39
收聽Daniel,並在Python中查找「@ property」裝飾器。你不必寫這樣的getter和setter。 – katrielalex 2012-01-10 22:10:32
也不要使用雙下劃線的名字 - 它們在那裏用於非常特殊的用例。如果您想指出某個屬性「僅供內部使用」,請改用單下劃線。 – katrielalex 2012-01-10 22:11:58