更简单的方法来调用另一个函数内定义的函数

问题描述:

假设我有很多变量,而不是每次写入它们每次()内,是否有一种更简单的方法来将所有变量压缩成一个字?更简单的方法来调用另一个函数内定义的函数

def numbers(): 
    a = 1 
    b = 2 
    c = 3 
    d = 4 
    e = 5 
    f = 6 
    g = 7 
    h = 8 
    i = 9 

    new_variable(a, b, c, d, e, f, g, h, i) 


def new_variable(a, b, c, d, e, f, g, h, i): 
    j = g + i 
    print (j) 
    new_variable_2(a, b, c, d, e, f, g, h, i) 

def new_variable_2(a, b, c, d, e, f, g, h, i): 
    k = g + h 
    print (k) 
    new_variable_3(a, b, c, d, e, f, g, h, i) 

    def new_variable_3(a, b, c, d, e, f, g, h, i): 
    l = h + i 
    print (i) 

numbers() 
+0

可能重复[\ * \ *(双星)和\ *(星)对参数做什么?](http://*.com/questions/36901/what-does-double-star-and -star-do-for-parameters) –

+0

好吧,我读过它,但我不认为它正在回答我的问题。我的问题是,我不想每次都输入'a','b','c','d','e','f','g','h','i'比如简单地输入'字母'并使其能够回忆所有变量。因此,而不是new_variable(a,b,c,d,e,f,g,h,i),它可以将它变成new_variable(字母表)吗?如果你知道如何,你能把它展示给我吗? –

+0

@JohnnyKang我编辑了我的文章,这可能是你要找的。 '*'解开列表。 – zipa

,您可以尝试这样的:

a, b, c, d, e, f, g, h, i = range(1,10) 
alphabet = [a, b, c, d, e, f, g, h, i] 

def new_variable(*alphabet): 
    j = g + i 
    print (j) 
    new_variable_2(*alphabet) 

def new_variable_2(*alphabet): 
    k = g + h 
    print (k) 
    new_variable_3(*alphabet) 

def new_variable_3(*alphabet): 
    l = h + i 
    print (i) 

new_variable(*alphabet) 

返回相同的数字代码。

+0

太棒了!我更像是一个视觉学习者。这帮助我完全理解了这种机制。非常感谢! –