gpt4 book ai didi

python-3.x - 如何在 Python 中为方法的输出赋值?

转载 作者:行者123 更新时间:2023-12-01 03:13:57 24 4
gpt4 key购买 nike

我已经用 Python 编码了一段时间,最近我对一些可能破坏 Python 的脚本有了一些想法。其中之一是为方法的返回值分配一个值。为什么这个代码是合法的?它不应该导致错误吗?如果没有,这种解释是否有任何用途?

class SomeClass:
x = 10

def Method():
return SomeClass()

print(Method().x)

#This line concerns me!
Method().x = 5


print(Method().x)

最佳答案

表达式 Method().x = 5是合法的,但基本上什么都不做。代码首先创建一个新的 SomeClass 实例,将 5 分配给它的 x 字段,最后将其丢弃,因为 SomeClass 实例没有存储在任何地方。 print(Method().x)之后创建 SomeClass 的另一个新实例并打印其 x 字段的值,该值已初始化为 10 且从未更改。

简而言之:每Method()正在创建 SomeClass 类的一个新的独立实例,其中包含它们自己单独的 x 字段。

这会起作用:

instance = Method()
instance.x = 5
print(instance.x)

关于python-3.x - 如何在 Python 中为方法的输出赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50125279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com