我再问一个稍微有点弱智的问题
class Test:def __init__(self, x, y):
return x + y
编程中需要主要到 __init__ 方法的返回值一定是None,不能是其它!
这个__init__返回值一定是none是什么意思啊,没太搞懂{:10_266:} None就是没有任何返回值的意思,就不能返回任何值 本帖最后由 Twilight6 于 2020-7-25 09:45 编辑
None 就是空的意思,而 __init__ 魔法方法是只能默认返回 None ,返回其他的对象一定会报错的
一个函数你没设置返回值,默认返回的都是 None ,所以说 Python 任何对象都有返回值
因为当你没有设置返回值时候,Python 默认返回的就是一个 空对象,也就是 None
你设置函数 return None ,和不设置 return 的结果是等价的
所以说 __init__ 魔法方法,可以设置 return ,但是 return 的对象必须是None ,否则就会报错
__init__ 对象不能有返回值,即使有也只能 return None 。 Twilight6 发表于 2020-7-25 09:43
None 就是空的意思,而 __init__ 魔法方法是只能默认返回 None ,返回其他的对象一定会报错的
一个 ...
正解
__init__对象不能有返回值,否则就会报错。 我觉得他们的回答都没有理解你的意思,你的意思是为什么 __init__ 函数为什么只能返回 None 而不能返回其他值,
你可以想象一下如果 __init__ 返回了其他值那么在执行这条语句时会发生什么:
a = Test()
这条语句的意思是创建一个 Test 类的实例并赋值给 a ,
那么如果 __init__ 返回了其他值呢,要知道它是在执行 a = Test() 这条语句时就已经被执行的,那么 Python 就会纠结在是把 Test 的实例赋值给 a 呢?还是 把 __init__ 函数的返回值赋值给 a 呢?
所以 Python 的设计师为了不让这种事情发生,干脆限制 __init__ 函数只能返回 None ,这样在执行 a = Test() 这条语句时就直接实例化 Test 类并赋值给 a ,所以 __init__ 的返回值只能是 None。
码字不易,如果您对我的答案感到满意,请设置最佳答案!
页:
[1]