我试图使用自己的模块,但我遇到了这个错误,似乎无法弄清楚如何修复它:
Traceback (most recent call last):
File "/Users/aaron/Desktop/cg/war.py", line 4, in <module>
AttributeError: Deck instance has no attribute 'test'
来自&#34; war.py&#34;:
import deck
d = Deck()
test2()
d.test()
来自&#34; deck.py&#34;:
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")
运行&#34; war.py,&#34; test2()
工作和打印&#34;你好&#34;。
d.test()
不起作用,并给出上述错误。我该如何解决这个问题?
从长远来看,我希望在其他&#34;纸牌游戏课程中使用Deck课程&#34;所以我不需要不断改写它。我想简单地导入Deck并使用它,所以如果我做错了,请告诉我!
答案 0 :(得分:2)
没有找到Deck类,因为它不在您当前的名称空间中。要使用它,您需要使用模块名称来引用它。您对test2函数有同样的问题。将war.py更改为如下所示:
import deck
d = deck.Deck()
deck.test2()
d.test()
您将遇到的另一个错误是您的Deck.test方法并不期望任何参数,但需要。添加&#34; self&#34; (括号之间)(括号内)。