Python 如何在带有输入参数的函数中命名参数?

Python 如何在带有输入参数的函数中命名参数?,python,python-3.x,function,Python,Python 3.x,Function,假设我想从yahoo finance导入股票代码,并为其创建一个函数。如何在函数中命名所述代码的变量 例如: def function(x, y): x = pdr.get_data_yahoo(y, start, end) return x function(aapl, 'AAPL') 这里我想把xinput作为我们想要分配给变量的名称,把y作为股票代码。将采用“AAPL”格式 例如: def function(x, y): x = pdr.get_data_yah

假设我想从yahoo finance导入股票代码,并为其创建一个函数。如何在函数中命名所述代码的变量

例如:

def function(x, y):
    x = pdr.get_data_yahoo(y, start, end)
    return x
function(aapl, 'AAPL')
这里我想把
x
input作为我们想要分配给变量的名称,把
y
作为股票代码。将采用“AAPL”格式

例如:

def function(x, y):
    x = pdr.get_data_yahoo(y, start, end)
    return x
function(aapl, 'AAPL')

有没有办法实现这一点,以便我可以快速导入历史数据并将其分配给变量?

下面的函数将返回您想要的结果,而无需使用局部变量x:

def function(y):
    return pdr.get_data_yahoo(y, start, end)
如果要在局部范围中使用给定名称创建变量,通常是不可能的。函数locals()以dict形式返回局部范围,但更新依赖于实现,您不会通过修改此dict来创建局部变量,因此请避免这种方法。如果需要键值分配,请使用dict like:

def function(x, y):
    d = {x: pdr.get_data_yahoo(y, start, end)} # or just return d
    return d

为什么不将
x
作为参数从
function
中删除,并像
aapl=function('aapl')
那样调用它呢?Python变量不是这样工作的。要么
aapl=function('aapl')
要么,如果您真的需要动态的东西,使用
dict
比如
keyname='aapl';d[keyname]=function('AAPL')
。如果我不想只做AAPL怎么办?我想把任何股票代码作为输入。并相应地更改变量的名称。请参见:这意味着我必须手动为多个ticker创建dict,这是唯一的解决方案?这是可行的,因为我只需要这样做,然后将函数分配给函数-ie-aapl=函数(y)之外的变量