鱼C论坛

 找回密码
 立即注册
查看: 2036|回复: 1

[已解决]关于如何定义类的疑问

[复制链接]
发表于 2020-8-27 11:46:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
class C:
    def __init__(self,size = 10):
        self.size = size
注意到视频里小甲鱼是这样设置类的,我平常是这样的,请问有什么区别吗?小甲鱼那样设置有什么好处?
class C:
    def __init__(self):
        self.size = 10


最佳答案
2020-8-27 15:51:25
区别还是有的
这两种写法在实例化该类的对象的时候是不一样的
第一种写法实例化该类对象的时候,可以不加参数,因为size有默认值,也可以加参数。
即:
class C:
    def __init__(self,size = 10):
        self.size = size
c1=C()   #这样是对的,c1.size=10
c2=C(15) #这样写也是对的,c2.size=15
第二种写法实例化该类对象的时候,不可以有参数,因为__init__中无参数
即:
class C:
    def __init__(self):
        self.size = 10
c1=C()   #这样写是对的,c1.size=10
c2=C(15) #这样写会报错,因为实例化的时候,不能传进去参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-27 15:51:25 | 显示全部楼层    本楼为最佳答案   
区别还是有的
这两种写法在实例化该类的对象的时候是不一样的
第一种写法实例化该类对象的时候,可以不加参数,因为size有默认值,也可以加参数。
即:
class C:
    def __init__(self,size = 10):
        self.size = size
c1=C()   #这样是对的,c1.size=10
c2=C(15) #这样写也是对的,c2.size=15
第二种写法实例化该类对象的时候,不可以有参数,因为__init__中无参数
即:
class C:
    def __init__(self):
        self.size = 10
c1=C()   #这样写是对的,c1.size=10
c2=C(15) #这样写会报错,因为实例化的时候,不能传进去参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 05:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表