| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- class FrenchDeck:
 
 -     ranks = [str(n) for n in range(2, 11)] + list('JQKA') # 扑克牌从2开始是最小的,然后A是最后的
 
 -     suits = 'spades diamonds clubs hearts'.split()  # 每张扑克牌有4种,黑桃,红心等
 
  
-     def __init__(self):
 
 -         print(self.suits)
 
 -         print(suits)
 
  复制代码 
 
下面的print函数中,第二个会报错,但是第一个不会报错。我在init前不是定义了suits吗,为什么要加哥self才能调用呢?
print(suits)找的是主程序的suits,而不是类的属性。self.suits是类的实例化的属性。‘ 
- suits ='main'
 
 - class FrenchDeck:
 
 -     ranks = [str(n) for n in range(2, 11)] + list('JQKA') # 扑克牌从2开始是最小的,然后A是最后的
 
 -     suits = 'spades diamonds clubs hearts'.split()  # 每张扑克牌有4种,黑桃,红心等
 
  
-     def __init__(self):
 
 -         print(self.suits)
 
 -         print(suits)
 
  复制代码 
- >>> a=FrenchDeck()
 
 - ['spades', 'diamonds', 'clubs', 'hearts']
 
 - main
 
  复制代码 
 
 
 |   
 
 
 
 |