白白白白丶白 发表于 2020-7-16 13:10:46

日常提问,构造函数

看到一句话

构造函数中不应有返回值,如果设置返回值则会报错。如果非要设置返回值,应返回None

请问,什么情况非要设置个返回值呢?

yhhpf 发表于 2020-7-16 13:16:42

构造函数的作用是初始化实例变量,创建一个对象并向调用方返回一个对该对象的引用
所以构造行数中写retrun并没啥意义,反正我是还没见过非要设置返回值的情况...{:10_277:}

白白白白丶白 发表于 2020-7-16 13:18:30

yhhpf 发表于 2020-7-16 13:16
构造函数的作用是初始化实例变量,创建一个对象并向调用方返回一个对该对象的引用
所以构造行数中写retrun ...

我也觉得是,多此一举

Twilight6 发表于 2020-7-16 13:19:52



请问,什么情况非要设置个返回值呢?

没用,设置 return None 等价于你没人为设置 return

这里只是说如果你一定想设置个 return ,这个时候 return 的值必须为 None

可能是强迫症患者的福利吧

Hello. 发表于 2020-7-16 13:24:25

本帖最后由 Hello. 于 2020-7-16 13:26 编辑

没有必要设置返回值,Python 构造函数作用如链接
https://www.cnblogs.com/yanhuidj/p/8880775.html

yhhpf 发表于 2020-7-16 13:28:40

Twilight6 发表于 2020-7-16 13:19
没用,设置 return None 等价于你没人为设置 return

这里只是说如果你一定想设置个 return ,这 ...

噗...强迫症福利可行...{:10_250:}

qiuyouzhi 发表于 2020-7-16 13:34:31

白白白白丶白 发表于 2020-7-16 13:18
我也觉得是,多此一举

我简单举个例子吧,假如你有一个类,然后你实例化了它:
>>> class A:
        def __init__(self):
                return 5

       
>>> a = A()

假如这段代码可以运行,那么,这个a到底是5,还是类A的实例呢?

白白白白丶白 发表于 2020-7-16 13:34:43

yhhpf 发表于 2020-7-16 13:28
噗...强迫症福利可行...

大意了,贴心的python

永恒的蓝色梦想 发表于 2020-7-16 15:00:35

qiuyouzhi 发表于 2020-7-16 13:34
我简单举个例子吧,假如你有一个类,然后你实例化了它:




类A的实例。
页: [1]
查看完整版本: 日常提问,构造函数