Python AttributeError:Y实例没有属性';X';
我是Python OOP新手,我正在构建一个21点游戏来提高我对OO Python的理解和实现 以下是我迄今为止为我的牌组和卡片类所写的内容:Python AttributeError:Y实例没有属性';X';,python,oop,attributeerror,Python,Oop,Attributeerror,我是Python OOP新手,我正在构建一个21点游戏来提高我对OO Python的理解和实现 以下是我迄今为止为我的牌组和卡片类所写的内容: import random class Deck: def __init__(self): # init variables self.cards = [] self.numCards = 0 self.populate_cards() def deal(self):
import random
class Deck:
def __init__(self):
# init variables
self.cards = []
self.numCards = 0
self.populate_cards()
def deal(self):
return self.cards.pop(random.randint(0, (self.numCards - 1)))
def populate_cards(self):
for suit in range (0, 5):
for face in range (0, 13):
card = Card(face, suit)
self.cards.append(card)
self.numCards = self.numCards + 1
def cards_left(self):
print (self.numCards)
print (self.cards)
class Card:
def __init__(self, face = 0, suit = 0):
self.face = face
self.suit = suit
def assign_value_using_face(self):
pass
当我执行Python提示符时,在将Cards.py文件导入Python之后,我将尝试创建一个Deck实例
>>> from Cards import *
>>> deck = Deck()
但是,我一直收到一个错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "Cards.py", line 8, in __init__
self.populate_cards()
AttributeError: Deck instance has no attribute 'populate_cards'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“Cards.py”,第8行,在初始化中__
self.populate_cards()
AttributeError:Deck实例没有“填充卡片”属性
我查看了Stackoverflow,发现所有发生此错误的情况都没有正确使用populate_cards()前面的“self.”,或者没有传递“self”参数来填充_cards,这两种情况我都在做。有人能帮忙吗?提前谢谢 您的代码对我来说运行时没有错误,我可以成功地执行
Deck()
。检查混合制表符和空格,并检查缩进问题。此外,请检查拼写,如果编辑器中打开了Cards.py
,请将其保存。另外,请注意deal
未正确调整self.numCards
。为什么不直接使用len(self.cards)
而不是有一个额外的变量,您需要记住每次self.cards
更改时都要更改它?@BrenBarn您正在运行哪个版本的Python?我正在运行2.7.3我正在使用2.7.5,但我怀疑这是版本问题。是否可能您没有加载您认为是的文件(即,正在运行旧版本)?还请注意,如果您一次导入模块,再次导入将不会产生任何效果。您需要使用重新加载
(或重新启动解释器)查看对模块所做更改的效果。