一次分配多个变量,Python
作者:互联网
有一个更好的方法吗?
a, b, c, = "yyy", "yyy", "yyy"
明显的尝试失败
a, b, c, = "yyy"
a, b, c = "yyy"*3
从技术上讲,以下工作有效,但我不认为这很直观,因为此逻辑表明a,b和c相同,而我要尝试做的只是说它们初始化为相同的值
a=b=c="yyy"
解决方法:
无需在此处使用元组分配;右边的值是不可变的,因此您也可以共享引用:
a = b = c = 'yyy'
在我看来,这一点都不是不直观的,并且python编译器只需要用字节码存储一个常量,而使用元组分配则需要一个附加的元组常量:
>>> def foo():
... a, b, c = 'yyy', 'yyy', 'yyy'
...
>>> foo.__code__.co_consts
(None, 'yyy', ('yyy', 'yyy', 'yyy'))
>>> def bar():
... a = b = c = 'yyy'
...
>>> bar.__code__.co_consts
(None, 'yyy')
如果右侧表达式是可变的,并且您希望a,b和c具有独立的对象,则不要使用此选项;然后使用生成器表达式:
a, b, c = ({} for _ in range(3))
或更好的是,不要那么懒惰,只需输入一下即可:
a, b, c = {}, {}, {}
这并不是您的左手作业是动态的.
标签:python,variables,variable-assignment 来源: https://codeday.me/bug/20191013/1910228.html