gpt4 book ai didi

python - 我怎样才能为文字赋值? ('a' = 10)

转载 作者:行者123 更新时间:2023-11-28 20:11:56 25 4
gpt4 key购买 nike

def foo(**args):
for k, v in args.items():
print type(k), type(v)
for k, v in args.items():
k = v
print k
print type(k)

foo(a = 10)
foo(**{'a':10})

给我

<type 'str'> <type 'int'>
10
<type 'int'>
<type 'str'> <type 'int'>
10
<type 'int'>

所以我很困惑我怎么能做到这一点,因为 k 是一个字符串,所以我不应该不能分配给它吗?

我显然做不到

In [35]: 'a' = 10
------------------------------------------------------------
File "<ipython console>", line 1
SyntaxError: can't assign to literal (<ipython console>, line 1)

最佳答案

k 不是字符串,它是一个变量的名称。你可以轻松做到

k = 'a'
k = 10

没有任何问题,因为 Python 中的赋值语句会将名称分配给指向右侧的任何值。

正如您提到的,字符串是不可变的,但这意味着作为一个对象,它没有您可以调用的方法来修改其数据。 Python 中的每个变量总是可以赋值以指向其他内容。

例如,如果你说

x = y = 'hello'

然后 xy 都引用同一个对象,但是赋值语句如

x += 'world'

x = 'bacon'

将更改 x 的绑定(bind)以指向其他内容。

关于python - 我怎样才能为文字赋值? ('a' = 10),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1636852/

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