में मैं निम्नलिखित कोड है, जो निम्नलिखित दो समस्याएं हैं:मुख्य विधि पायथन
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
इस कोड को एक ट्यूटोरियल से है, और ट्यूटोरियल में यह ठीक काम करता है। मेरे पास पाइथन 2.7 है और ग्रहण के लिए 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()
क्या आप उस ट्यूटोरियल को लिंक प्रदान कर सकते हैं? जो भी इसे लिखा है उसे गोली मार दी जानी चाहिए, या कम से कम लिखने से प्रतिबंधित होना चाहिए। यह * नहीं * आप पायथन में कक्षा गुण कैसे लिखते हैं। –
डैनियल को सुनें और पायथन में '@ संपत्ति' सजावट देखें। आपको ऐसे गेटर्स और सेटर्स लिखने की ज़रूरत नहीं है। – katrielalex
डबल-अंडरस्कोर नामों का भी उपयोग न करें - वे एक बहुत ही विशेष उपयोग मामले के लिए हैं। यदि आप यह इंगित करना चाहते हैं कि एक संपत्ति "केवल आंतरिक उपयोग के लिए" है तो इसके बजाय एकल-अंडरस्कोरिंग का उपयोग करें। – katrielalex