Python函数导入

Python函数导入,python,Python,我想要{'game\u name'='notyet'}您可以通过添加一点冗余来获得您想要的行为: { AttributeError: 'str' object has no attribute '__name__' 结果: game_data = {} def data_add(**params): (key, value) = (list)(params.items())[0] game_data[key] = value game_name = "notye

我想要
{'game\u name'='notyet'}

您可以通过添加一点冗余来获得您想要的行为:

{ AttributeError: 'str' object has no attribute '__name__'
结果:

game_data = {}

def data_add(**params):
    (key, value) = (list)(params.items())[0]
    game_data[key] = value


game_name = "notyet"

data_add(game_name=game_name)
print(game_data)
能力是一样的。任何抽象都不会丢失。如果可以键入一次变量名,则可以键入两次

有可能有更好的方法来完成您真正想用这种模式完成的任何事情。使用这样的变量名不是一个好的做法。变量保存数据。变量本身不是数据

为什么不干脆做:

{'game_name': 'notyet'}
另一个选项是将名称与值关联为元组,然后可以作为单个位置参数传入,该选项将为您提供所需的对
data\u add
的精确调用:

game_data = {}

def data_add(key, value):
    game_data[key] = value

data_add("game_name", "notyet")
print(game_data)

你想要什么是不可能的。Python数据模型中没有将变量名与使用变量名的作用域之外的对象相关联的内容。@MarkRansom可能是这样。我希望导入时使用一个键,如“add(value)”。它必须是value=“value”。正如@MarkRansom指出的,您想要的是不可能的。OK。非常感谢。
game_data = {}

def data_add(key, value):
    game_data[key] = value

data_add("game_name", "notyet")
print(game_data)
game_data = {}

def data_add(x):
    game_data[x[0]] = x[1]

game_name = ("game_name", "notyet")

data_add(game_name)
print(game_data)