Mikil 发表于 2020-10-22 19:00:40

python类方法的问题

class FrenchDeck:
    ranks = + list('JQKA') # 扑克牌从2开始是最小的,然后A是最后的
    suits = 'spades diamonds clubs hearts'.split()# 每张扑克牌有4种,黑桃,红心等

    def __init__(self):
      print(self.suits)
      print(suits)

下面的print函数中,第二个会报错,但是第一个不会报错。我在init前不是定义了suits吗,为什么要加哥self才能调用呢?

冬雪雪冬 发表于 2020-10-22 19:09:23

print(suits)找的是主程序的suits,而不是类的属性。self.suits是类的实例化的属性。‘
suits ='main'
class FrenchDeck:
    ranks = + 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

不能懒 发表于 2020-10-22 19:09:49

参数不能省掉吧
页: [1]
查看完整版本: python类方法的问题