1

我想根據字符串中的解析來命名我的變量。基於解析字符串的變量名稱

例如: 如果解析字符串==「狗」: 我的變量名應等於狗和它的價值字符串「狗」

+0

你可以在PHP中做到這一點(它們被稱爲變量變量),但我從來沒有聽說過Python 。也許會搜索這個詞。 – 2012-04-24 02:17:04

回答

1

This answer,告知符號表中的蟒蛇有助於直接回答這個問題:

>>> varname = 'spam' 
>>> value = 'eggs' 
>>> locals() 
{'__builtins__': <module 'builtins' (built-in)>, 'varname': 'spam', 'value': 'eggs', '__package__': None, '__name__': '__main__', '__doc__': None} 
>>> locals()[varname] = value 
>>> locals() 
{'__builtins__': <module 'builtins' (built-in)>, 'varname': 'spam', 'spam': 'eggs', 'value': 'eggs', '__package__': None, '__name__': '__main__', '__doc__': None} 
>>> print(spam) 
some value 

locals()提供本地可見的變量的dict。通過修改字典,您可以更改並創建新變量。 Python documentation here

還有一個對應的globals()來訪問全局可見變量。瞭解變量的範圍,請參閱this part of the python documentation

在上述情況下,globals()產生一個dict具有相同的內容,因爲在這種情況下,本地範圍是全局的。在課堂內部,你會看到不同的內容,你必須決定是否要修改本地範圍或全局範圍。

但是,除非你知道你在做什麼,否則這樣做可能不是一個好主意。你可以創建一個自定義類的對象,它具有一個名稱屬性 - 取決於你打算做什麼