自定义模块 - 对象没有属性
Custom Module - Object Has No Attribute
我正在尝试使用我自己的模块,但我遇到了这个错误并且似乎无法弄清楚如何修复它:
Traceback (most recent call last):
File "/Users/aaron/Desktop/cg/war.py", line 4, in <module>
AttributeError: Deck instance has no attribute 'test'
来自 "war.py":
import deck
d = Deck()
test2()
d.test()
来自 "deck.py":
class Deck:
def __init__(self):
self.stack = self.shuffle()
self.stackSize = len(self.stack)
def __repr__(self):
return str(self.stack.items())
def shuffle(self):
return {'2c': 'cards/2c.png', '3c': 'cards/3c.png', '4c': 'cards/4c.png', \
'5c': 'cards/5c.png', '6c': 'cards/6c.png', '7c': 'cards/7c.png', \
'8c': 'cards/8c.png', '9c': 'cards/9c.png', '10c': 'cards/10c.png', \
'jc': 'cards/jc.png', 'qc': 'cards/qc.png', 'kc': 'cards/kc.png',
'ac': 'cards/ac.png'} #continue w/ other suits
def test():
print("hello")
def test2():
print("hello2")
当 运行ning "war.py," test2()
工作并打印 "hello" 时。
d.test()
不起作用,并给出上面的错误。我该如何解决这个问题?
在长运行中,我希望在其他"card game classes"中使用Deck class,这样我就不需要不断地重写它。我想简单地导入 Deck 并使用它,所以如果我这样做不正确,请告诉我!
未找到牌组 class,因为它不在您当前的名称 space 中。要使用它,您需要使用模块名称来引用它。您将遇到与 test2 函数相同的问题。将 war.py 更改为如下所示:
import deck
d = deck.Deck()
deck.test2()
d.test()
您将遇到的另一个错误是您的 Deck.test 方法不需要任何参数,但需要。在括号之间添加 "self"(不带引号)。
我正在尝试使用我自己的模块,但我遇到了这个错误并且似乎无法弄清楚如何修复它:
Traceback (most recent call last):
File "/Users/aaron/Desktop/cg/war.py", line 4, in <module>
AttributeError: Deck instance has no attribute 'test'
来自 "war.py":
import deck
d = Deck()
test2()
d.test()
来自 "deck.py":
class Deck:
def __init__(self):
self.stack = self.shuffle()
self.stackSize = len(self.stack)
def __repr__(self):
return str(self.stack.items())
def shuffle(self):
return {'2c': 'cards/2c.png', '3c': 'cards/3c.png', '4c': 'cards/4c.png', \
'5c': 'cards/5c.png', '6c': 'cards/6c.png', '7c': 'cards/7c.png', \
'8c': 'cards/8c.png', '9c': 'cards/9c.png', '10c': 'cards/10c.png', \
'jc': 'cards/jc.png', 'qc': 'cards/qc.png', 'kc': 'cards/kc.png',
'ac': 'cards/ac.png'} #continue w/ other suits
def test():
print("hello")
def test2():
print("hello2")
当 运行ning "war.py," test2()
工作并打印 "hello" 时。
d.test()
不起作用,并给出上面的错误。我该如何解决这个问题?
在长运行中,我希望在其他"card game classes"中使用Deck class,这样我就不需要不断地重写它。我想简单地导入 Deck 并使用它,所以如果我这样做不正确,请告诉我!
未找到牌组 class,因为它不在您当前的名称 space 中。要使用它,您需要使用模块名称来引用它。您将遇到与 test2 函数相同的问题。将 war.py 更改为如下所示:
import deck
d = deck.Deck()
deck.test2()
d.test()
您将遇到的另一个错误是您的 Deck.test 方法不需要任何参数,但需要。在括号之间添加 "self"(不带引号)。