簡體   English   中英

使用 function 更改變量名稱

[英]Change variable name using a function

我想借助從參數中獲取名稱的 function 來創建一個變量,這樣如果我運行它;

hi_var(abc)
print(abc)

我會得到你好 output

我目前有這個,但它完全不起作用;

def hi_var(var_name):
  text = "hi"
  return text as var_name

如果有人知道如何做到這一點,那就太好了

我不確定你為什么要這樣做,但如果你願意,你可以訪問全局變量目錄並在那里添加變量:

def hi_var(var_name):
    text = 'hi'
    globals()[var_name] = text

hi_var('abc')
print(abc)

在 python 中,包含 REPL 的模塊變量存儲在名為 globals() 的字典中。 在控制台中輸入globals()將顯示字典。

雖然,這個問題對我來說不是很清楚,但據我所知,您需要一個可以為變量賦值的 function。 所以,這里有一個 function 的例子。

def cv(var_name, value='hi'): 
    """
    create varibles
    """
    globals()[var_name] = value

cv('h')
print(h)

Output:

hi

@Querenker 的解決方案會起作用,但一般來說使用全局變量並不是很好。 它變得有點亂。 單元測試也會變得棘手。

我認為將所有內容存儲在特定的地方會更好。

例如:

dynamic_goodies = {}

def hi_var(var_name):
  text = "hi"
  dynamic_goodies[var_name] = text
  return text

hi_var(`abc`)
print(dynamic_goodies['abc'])

如果這不能解決您的問題,您可以為您的問題添加更多信息嗎? 你為什么想做這件事?

以前的答案非常好,但是不可能按照您嘗試的方式進行,字典是一種很好的解決方法,但是您不能更改普通變量的名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM