鱼C论坛

 找回密码
 立即注册
查看: 1065|回复: 6

[已解决]求助:关于__init__(self)方法的疑问?

[复制链接]
发表于 2018-5-25 09:39:44 | 显示全部楼层 |阅读模式
1鱼币
>>> class MyClass:
        def __init__(self):
                return "I love FishC.com!"

>>> myclass = MyClass()
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    myclass = MyClass()
TypeError: __init__() should return None, not 'str'


问题:为什么__init__特殊方法不应当返回None以外的任何对象
最佳答案
2018-5-25 09:39:45
这是python的规定,不可以有返回值,也就是return None。
从python的设计思路考虑,__init__方法是用来初始化新对象里的实例变量,需要有返回值的话,就要考虑新增一个方法来实现了。

最佳答案

查看完整内容

这是python的规定,不可以有返回值,也就是return None。 从python的设计思路考虑,__init__方法是用来初始化新对象里的实例变量,需要有返回值的话,就要考虑新增一个方法来实现了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-25 09:39:45 | 显示全部楼层    本楼为最佳答案   
这是python的规定,不可以有返回值,也就是return None。
从python的设计思路考虑,__init__方法是用来初始化新对象里的实例变量,需要有返回值的话,就要考虑新增一个方法来实现了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-25 09:47:21 | 显示全部楼层
请问,返回的数据谁接收?是myclass变量?还是python的内建输出模块或函数?还是MyClass类?

根被就没变量或对象接收返回的数据,当然就报错了。return None是对的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-25 09:52:13 | 显示全部楼层
语法规定init函数不能返回其他值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-25 10:14:15 | 显示全部楼层
返回值请用__new__方法
__init__只能返回None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-25 13:04:32 | 显示全部楼层
__init__()规定不能有任何返回值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-25 15:09:07 | 显示全部楼层
语法规定不允许有返回值哦~
活到老学到老
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 23:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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