class mobile:
def __init__(self,brandname,color,isjack):
self.brand=brandname
self.color=color
self.isjack=isjack
def calling(self):
print('calling')
def cameraclick(self):
print('picture is clicked')
def message(self):
print('message_sent')
def main():
m1=mobile('apple','black',False)
print(m1.brand)
print(m1.color)
print(m1.isjack)
m1.calling()
m1.cameraclick()
m1.message()
print("-------------------")
m2=mobile('samsung','grey',False)
print(m2.brand)
print(m2.color)
print(m2.isjack)
if __name__=='__main__':
main()
我寫了一個基本代碼來檢查為什么我會收到名稱錯誤。如果有人可以幫忙嗎?
uj5u.com熱心網友回復:
檢查你的縮進。就像現在一樣,您的main
函式是您的mobile
類的(靜態)方法。這意味著在類定義完成之前mobile
,方法和其中的所有內容都會被讀取。因此,解釋器還不“知道” mobile
。
您還應該為此減少縮進:
if __name__ == '__main__':
main()
uj5u.com熱心網友回復:
你好嗎?
這發生在代碼上的縮進錯誤!
Python uses indentation to indicate a block of code.
如果main
居住在class mobile
塊內,則只有在呼叫時在其前面加上mobile
關鍵字時才可呼叫
def main():
因此,您需要將and方法取消縮進if __name__ == '__main__':
到根級別。
class Mobile:
def __init__(self, brandname, color,isjack):
self.brand=brandname
self.color=color
self.isjack=isjack
def calling(self):
print('calling')
def cameraclick(self):
print('picture is clicked')
def message(self):
print('message_sent')
def main():
m1 = Mobile("apple", "black", False)
print(m1.brand)
print(m1.color)
print(m1.isjack)
m1.calling()
m1.cameraclick()
m1.message()
print("-------------------")
m2 = Mobile("samsung", "grey", False)
print(m2.brand)
print(m2.color)
print(m2.isjack)
if __name__=='__main__':
main()
小費:
- 你的類應該在 PascalCase 規則下命名
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/506851.html