默认值函数(错误改正)

前些天写了一些错误观点,太蠢了

之前是这么写的

class Book():
    def __init__(self,identify='人民出版社',name,price):#尝试直接在定义参数时直接赋值类属性
        self.name=name
        self.price=price
        self.identify=identify
 
    def get(self):
        print(self.identify)
A_book=Book('计算机类',50)
A_book.get()

会提示这样的错误SyntaxError: non-default argument follows default argument

非默认实参跟随默认实参 应该是不能这样做

然后换了一种方法

定义类的实例属性的时候是可以赋初始值的,之前以为不行,特此修正

它的规则和带有默认值的函数类似,在定义带有默认值函数时,默认值参数必须全部出现在未知参数右侧,任何一个默认值参数右边都不能再出现未知参数。给实例属性赋默认值也是如此

改正后的代码

class Book():
    def __init__(self,name,price,identify='人民出版社',):#尝试直接在定义参数时直接赋值类属性
        self.name=name
        self.price=price
        self.identify=identify
 
    def get(self):
        print(self.identify)
A_book=Book('计算机类',50)
A_book.get()

只要把identify=‘人名出版社’放在没有赋值的参数右边即可

执行结果

人民出版社

但是这样却定义的是一个实例属性,并不是类属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值