为什么我在 globals() 中找不到我的变量?

Why can't I find my variable in globals()?

我创建了一个函数来为随机 DNA 创建一个变量。但是当我想查看 rdna 是否在 globals() 中时,我得到 False 结果

from random import choice
def randomseq():
  global rdna
  rdna=""
  largo = int(input("Sequence Length: "))
  for count in range(largo):
    rdna+=choice("CGTA")
  return rdna
rdna in globals()
False

为什么我无法获取True

rdna in globals() 将在 globals() 中搜索存储在变量 rdna 中的值。如果你真的想搜索 "rdna" 你应该把它变成一个字符串文字:

"rdna" in globals()

举个例子:

x = 1
my_var = 'x'
print(my_var in globals())

这会打印 True,但不是因为 my_var 是全局变量,而是因为 x 是。 globals() returns 一个包含所有全局变量及其值的字典,my_var in globals() 在这种情况下与询问 'x' in globals().

相同

你想要这个:

'rdna' in globals()