Python:getCNCount() missing 1 required positional argument

class FirstClass:
    count = 0
    def __init__(self,seq,pos):
        self.seq = seq
        self.pos = pos
        FirstClass.count += 1

    def getCNChr(n):
        tpl = "〇一二三四五六七八九"
        s = ""
        try:
            for c in str(n):
                s += tpl[eval(c)]
        except:
            pass
        return s

    @staticmethod
    def getCNCount(self):
            return"已使用"+FirstClass.getCNChr(FirstClass.count)+"个座位"

        
d1 = FirstClass(10,"window")
d2 = FirstClass(8,"asile")
print(FirstClass.getCNCount())

运行之后,报错:“TypeError: getCNCount() missing 1 required positional argument: 'self'”

是因为我给getCNCount()多加了个参数,把“def getCNCount(self):”改为“def getCNCount():”,就可以

 

class FirstClass:
    count = 0
    def __init__(self, seq, pos):
        self.seq = seq
        self.pos = pos
        FirstClass.count += 1

    @classmethod
    def getCount():
        return "已使用" + str(FirstClass.count) + "个座位"
    
d1 = FirstClass(10, "window")
d2 = FirstClass(8, "asile")
print(FirstClass.getCount())

运行之后,报错:“TypeError: getCount() takes 0 positional arguments but 1 was given”

是因为我少给“getCount()”一个形参,每个与类相关联的方法调用时,都自动传递实参self , 它是一个指向实例本身的引用”_init_中的参数self会自动传递给getCount(),把“def getCount():”改成“def getCount(self):”,就可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值