数字类型是对象吗?
>>> isinstance(1, object)True
显然他们是。:-)。
请注意,您 可能 需要
object稍微调整一下心理模型。在我看来,您正在考虑将其
object视为“可变”的东西-
并非如此。实际上,我们需要将python名称视为对对象的引用。该对象可以保存对其他对象的引用。
name = something
在此评估右侧-所有名称都解析为对象,并且表达式(对象)的结果由“名称”引用。
好的,现在让我们考虑将某些内容传递给函数时会发生什么。
def foo(x): x = 2z = 3foo(z)print(z)
我们期望在这里发生什么?好吧,首先我们创建函数
foo。接下来,我们创建对象
3并通过name引用它
z。之后,我们查找
z引用的值并将该值传递给
foo。输入后
foo,该值将由(本地)名称引用
x。然后,我们创建对象2并通过本地名称引用它
x。注意,
x与全局
z无关-
它们是独立的引用。仅仅因为他们在输入函数时就引用了同一对象,并不意味着他们必须始终引用该函数。我们可以使用赋值语句随时更改名称所引用的内容。
请注意,与+ =您的例子可能看起来复杂的事情,但你能想到的
a += 10是
a = a + 10,如果有帮助在这方面。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)