python对象没有属性_Python-对象没有属性E
我從頭開始在一個單獨(dú)的文件中重新編寫了整個類,所有東西都神奇地工作過,條件語句等等。所以,我只是將這個類和幾個函數(shù)從新文件導(dǎo)入主文件。我還是不知道第一次出了什么問題。
注意以下問題在技術(shù)上已解決。你可以在代碼的底部看到一個拼寫錯誤。然而,這暴露了一個問題,即我的所有條件(if、try等)都停止工作,這就是為什么我在單獨(dú)的模塊中重新編寫類
I會刪除這篇文章,因?yàn)樗屗腥艘粺o所獲,但顯然這不是堆棧溢出的工作原理。
好吧,我一直在學(xué)習(xí)Python 3.4,并決定在一旁做一些家庭作業(yè)作為練習(xí)。我開始制作一個腳本,它對兩個人的戰(zhàn)斗進(jìn)行了一個非常基本的模擬,并且會用我學(xué)到的任何新東西(比如添加一個GUI)來擴(kuò)展它。
腳本一開始很好,但我做的更改越多,錯誤就越多。現(xiàn)在到了這樣的地步,我不能進(jìn)入任何領(lǐng)域的“戰(zhàn)斗機(jī)”類沒有它拋出錯誤,如:'duelist' object has no attribute '_duelist__health'
除了“”duelist“對象沒有屬性“\duelist\uuxxx””,除了輸入錯誤之外,我還有0個其他錯誤。
不幸的是,谷歌沒能幫上忙,所以這就是為什么我要做我的第一個StackOverflow帖子。
下面是第一個錯誤快樂字段“health”:class duelist:
def __init__(self):
self.name = "Duelist" #must not be ""
self.health = 5 #must be >0
self.damage = [1, 3] #random attack range. Must be >=0 0 and the first must not be higher.
self.skill = 10 #% chance to pass a skill check. Representative of parrying/dodging. Must be >=0
self.shield = True #can block?
self.shieldE = 80 #max block %. Must be >0
self.agility = 0.5 #rate of attack in seconds. Must be >=0.05
self.precision = 10 #critical hit chance. Must be >=0
self.critical = 2.0 #critical multiplier. Must be >= 1.1
#name
@property
def name(self):
return self.__name
@name.setter
def name(self, value):
if value != "":
self.__name = value
else:
print("Invalid Name.\n")
#name
#health
@property
def health(self):
return self.__health
@health.setter
def health(self, value):
try:
value = value(int)
if value>=1:
self.__health = value
else:
print("Health must be above 0.\n")
except:
print("Invalid Health.\n")
#health
另外,對于那些建議將字段名更改為不包含'''''''''''''''''''''''''everywhere'的用戶,這會導(dǎo)致無限循環(huán)。
準(zhǔn)確輸入:class duelist:
def __init__(self):
self.health = 5
@property
def health(self):
return self.__health
@health.setter
def health(self, value):
self.__health = value
D = duelist()
print(D.health)
D.health = 15
print(D.health)
正確返回5
15
總結(jié)
以上是生活随笔為你收集整理的python对象没有属性_Python-对象没有属性E的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 坦克300剪掉方向盘加热线会不会有影响
- 下一篇: 在新疆马兰当兵容易转士官吗