python class 找不到自己的属性
python class cant find its own attribute
我尝试创建 类 来表示一副纸牌。
问题是 showDeck
方法没有找到卡片列表并打印出来:
Traceback (most recent call last):
File "C:\Users\User\workspace\learn\cards\Deck.py", line 32, in <module>
newDeck.showDeck()
File "C:\Users\User\workspace\learn\cards\Deck.py", line 27, in showDeck
for item in self.cards ():
AttributeError: 'Deck' object has no attribute 'cards'
代码如下:
class Card:
def __init__(self,sign,number):
self.number=number
self.sign=sign
#constructor of card class
def show (self):
print ("["+str(self.sign)+","+str(self.number)+"]")
#prints out the card
class Deck:
def _init_ (self):
self.cards=[]
for i in range (1,4):
sign=i
for i in range (1,14):
number=i
a=Card(sign,number)
a.show()
self.cards.append(a)
#the constructor of the deck, creates a list, and then creats all the possible cards and adds them to the list
def showDeck (self):
for item in self.cards ():
item.show
#prints out the deck
newDeck= Deck()
newDeck.showDeck()
您拼错了 Deck.__init__
方法:
class Deck:
def _init_ (self):
开始和结束需要 两个 下划线。您的 _init_
方法永远不会被调用,所以 self.cards
永远不会被设置。
你对 Card
class 是正确的;请注意 init
?
两边的下划线数量是如何加倍的
class Card:
def __init__(self,sign,number):
我尝试创建 类 来表示一副纸牌。
问题是 showDeck
方法没有找到卡片列表并打印出来:
Traceback (most recent call last):
File "C:\Users\User\workspace\learn\cards\Deck.py", line 32, in <module>
newDeck.showDeck()
File "C:\Users\User\workspace\learn\cards\Deck.py", line 27, in showDeck
for item in self.cards ():
AttributeError: 'Deck' object has no attribute 'cards'
代码如下:
class Card:
def __init__(self,sign,number):
self.number=number
self.sign=sign
#constructor of card class
def show (self):
print ("["+str(self.sign)+","+str(self.number)+"]")
#prints out the card
class Deck:
def _init_ (self):
self.cards=[]
for i in range (1,4):
sign=i
for i in range (1,14):
number=i
a=Card(sign,number)
a.show()
self.cards.append(a)
#the constructor of the deck, creates a list, and then creats all the possible cards and adds them to the list
def showDeck (self):
for item in self.cards ():
item.show
#prints out the deck
newDeck= Deck()
newDeck.showDeck()
您拼错了 Deck.__init__
方法:
class Deck:
def _init_ (self):
开始和结束需要 两个 下划线。您的 _init_
方法永远不会被调用,所以 self.cards
永远不会被设置。
你对 Card
class 是正确的;请注意 init
?
class Card:
def __init__(self,sign,number):