python TypeError: 'NoneType' object has no attribute '__getitem__'

qq_40790713 2017-11-23 09:40:53
import random
class Deck:
def __init__(self,cards):
self.cards = cards
def generate(self):
for i in range(1,14):
self.cards.append([i,'heart'])
self.cards.append([i,'clubs'])
self.cards.append([i,'diamond'])
self.cards.append([i,'spade'])
finalCards = random.shuffle(self.cards)
return finalCards
class Handcards:
def __init__(self,finalCards):
self.finalCards = finalCards
def generateHandcards(self):
nCards = []
eCards = []
sCards = []
wCards = []
for i in range(5):
n = self.finalCards[0]
e = self.finalCards[1]
s = self.finalCards[2]
w = self.finalCards[3]
nCards.append(n)
eCards.append(e)
sCards.append(s)
wCards.append(w)
self.finalCards = self.finalCards[4:]
print nCards,eCards,sCards,wCards
return nCards,eCards,sCards,wCards
def main():
finalCards = Deck([]).generate()
playerCards = Handcards(finalCards).generateHandcards()
if __name__ == '__main__':
main()
结果报错TypeError: 'NoneType' object has no attribute '__getitem__'
...全文
1770 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
闪电侠悟空 2018-11-21
  • 打赏
  • 举报
回复
你的代码路径不要包含中文字符,应该就可以解决了~
heloowird 2018-04-09
  • 打赏
  • 举报
回复
引用 2 楼 qq_40790713 的回复:
我之前也看了 并没有看太懂 就因为这个 我一晚上什么都没干 现在想死了 求救
建议先查查random.shuffle()函数的原理及返回值。
heloowird 2018-04-09
  • 打赏
  • 举报
回复
finalCards = random.shuffle(self.cards) 返回的finalCards为None,传到Handcards仍然为None,然后通过[]取值的时候,就出现这样的错误。
qq_40790713 2017-11-23
  • 打赏
  • 举报
回复
我之前也看了 并没有看太懂 就因为这个 我一晚上什么都没干 现在想死了 求救
把分全给哥 2017-11-23
  • 打赏
  • 举报
回复
http://blog.csdn.net/heloowird/article/details/22852071

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧