假面的假面 发表于 2022-8-31 00:11:02

关于python变量基础问题。。。。

import numpy as np
x=np.random.randint(1,200,10)
print(x)
y=x.sort()
print(y)
print(x)


以上代码y为啥是None?x.sort()对象调用的函数函数最后改变了该对象this,也就是self的值,并复制给y可是为啥y为None?

suchocolate 发表于 2022-8-31 00:55:30

sort()不返回新对象,直接操作原对象。

python爱好者. 发表于 2022-8-31 07:16:39

suchocolate 发表于 2022-8-31 00:55
sort()不返回新对象,直接操作原对象。

可以改成:
import numpy as np
x = np.random.randint(1,200,10)
print(x)
y = sorted(x)
print(y)
print(x)

因为 sorted 函数不会改变原对象,而是返回一个新的结果

假面的假面 发表于 2022-8-31 09:42:49

suchocolate 发表于 2022-8-31 00:55
sort()不返回新对象,直接操作原对象。

直接操作原对象,那为啥y返回None而不是x的对象值?

假面的假面 发表于 2022-8-31 09:43:19

python爱好者. 发表于 2022-8-31 07:16
可以改成:

因为 sorted 函数不会改变原对象,而是返回一个新的结果

直接操作原对象,那为啥y返回None而不是x的对象值?

鱼cpython学习者 发表于 2022-8-31 09:54:25

假面的假面 发表于 2022-8-31 09:42
直接操作原对象,那为啥y返回None而不是x的对象值?

直接操作原对象的意思,就是直接把操作应用在对象上,为什么要返回x的对象值?

T-T-A 发表于 2022-8-31 10:08:13


sort()不返回新对象,直接操作原对象

suchocolate 发表于 2022-8-31 10:15:08

假面的假面 发表于 2022-8-31 09:42
直接操作原对象,那为啥y返回None而不是x的对象值?

函数不设return,默认返回None。
函数基础。
页: [1]
查看完整版本: 关于python变量基础问题。。。。