Я видел предыдущие записи переполнения стека по этой теме, но я все еще не могу использовать эти две команды при попытке запустить мою функцию. Я закодировал демонстрационный пример простой скользящей средней, которую я хотел бы запустить через команду args, kwargs.python * args and ** kwargs
import numpy as np
def moving_average(data,lookback=7,SMA=True): #MA function
if SMA==True:
weights=np.repeat(1.0,lookback)/lookback
smas=np.convolve(data,weights,'valid')
return smas
Просто работает эта функция работает должным образом.
data=np.random.randn(100) #randomly
moving_average(data,lookback=7,SMA=True) #this outputs the correct set of numbers
Однако второй я пытаюсь добавить аргументы и kwargs, которые он разрушает.
def test1(*args,**kwargs):
return moving_average(data,lookback,SMA)
test1(data,lookback=7,SMA=True) #this returns an error, saying my global lookback is not defined
Что именно в логике * args ** kwargs я ошибаюсь? Ive попытался ввести как кортеж, так и словарь, но ни один из них не работает.
Это не то, что для аргсов и кваргов. Если вы знаете имена аргументов, и вы просто хотите передать их, почему вы хотите использовать args/kwargs? –