鱼C论坛

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

[已解决]我再问一个稍微有点弱智的问题

[复制链接]
发表于 2020-7-25 09:40:45 | 显示全部楼层 |阅读模式

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

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

x
class Test:
        def __init__(self, x, y):
                return x + y

编程中需要主要到 __init__ 方法的返回值一定是None,不能是其它!

这个__init__返回值一定是none是什么意思啊,没太搞懂
最佳答案
2020-7-25 09:43:41
本帖最后由 Twilight6 于 2020-7-25 09:45 编辑



None 就是空的意思,而 __init__ 魔法方法是只能默认返回 None ,返回其他的对象一定会报错的

一个函数你没设置返回值,默认返回的都是 None ,所以说 Python 任何对象都有返回值

因为当你没有设置返回值时候,Python 默认返回的就是一个 空对象,也就是 None

你设置函数 return None ,和不设置 return 的结果是等价的

所以说 __init__ 魔法方法,可以设置 return ,但是 return 的对象必须是  None ,否则就会报错

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-25 09:43:06 | 显示全部楼层
None就是没有任何返回值的意思,就不能返回任何值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-25 09:43:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-7-25 09:45 编辑



None 就是空的意思,而 __init__ 魔法方法是只能默认返回 None ,返回其他的对象一定会报错的

一个函数你没设置返回值,默认返回的都是 None ,所以说 Python 任何对象都有返回值

因为当你没有设置返回值时候,Python 默认返回的就是一个 空对象,也就是 None

你设置函数 return None ,和不设置 return 的结果是等价的

所以说 __init__ 魔法方法,可以设置 return ,但是 return 的对象必须是  None ,否则就会报错

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-7-25 10:21:27 | 显示全部楼层
__init__ 对象不能有返回值,即使有也只能 return None 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-25 10:36:51 | 显示全部楼层
Twilight6 发表于 2020-7-25 09:43
None 就是空的意思,而 __init__ 魔法方法是只能默认返回 None ,返回其他的对象一定会报错的

一个 ...

正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-25 12:59:47 | 显示全部楼层
__init__对象不能有返回值,否则就会报错。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-25 17:48:54 | 显示全部楼层
我觉得他们的回答都没有理解你的意思,你的意思是为什么 __init__ 函数为什么只能返回 None 而不能返回其他值,

你可以想象一下如果 __init__ 返回了其他值那么在执行这条语句时会发生什么:

a = Test()

这条语句的意思是创建一个 Test 类的实例并赋值给 a ,

那么如果 __init__ 返回了其他值呢,要知道它是在执行 a = Test() 这条语句时就已经被执行的,那么 Python 就会纠结在是把 Test 的实例赋值给 a 呢?还是 把 __init__ 函数的返回值赋值给 a 呢?

所以 Python 的设计师为了不让这种事情发生,干脆限制 __init__ 函数只能返回 None ,这样在执行 a = Test() 这条语句时就直接实例化 Test 类并赋值给 a ,所以 __init__ 的返回值只能是 None。

码字不易,如果您对我的答案感到满意,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 20:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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