繁体   English   中英

谈论变量时,赋值和绑定有什么区别?

[英]what's the difference between assign and bound when talking about variable?

除了http://www.stavros.io/tutorials/python/

# This swaps the variables in one line(!).
# It doesn't violate strong typing because values aren't
# actually being assigned, but new objects are bound to
# the old names.
>>> myvar, mystring = mystring, myvar

我不明白他的意思。

他的意思是说,这两个变量实际上是在不知道它们的类型的情况下交换的,或者像往常一样显式地使用中间变量。 弱类型交换看起来像这样:

temp = A
A = B
B = temp

为了执行交换,必须创建一个先前单位化的临时变量temp 但是,由于在首次创建temp时未指定任何类型,因此它违反了强类型。 这是一个强类型的交换:

int temp = A
A = B
B = temp

A, B = B, A这样的交换不会违反强类型,因为不需要明确地定义带或不带类型的中间变量。 它只是一个赋值操作,而一个基本的赋值操作总是模棱两可(无论您使用的是强类型语言还是弱类型语言, A = B都是相同的)。

a=1这样的赋值,从概念上讲Python将执行三个不同的步骤来执行请求。

1,创建一个对象代表值1

2.创建变量a

3.将变量a链接(或绑定为链接)到新对象1

就您而言,声明

myvar, mystring = mystring, myvar

将更改变量对象绑定关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM