引用函数还是创建一个只调用另一个函数的新函数?

Jef*_*rth 1 python coding-style function

def a(something):
    return something*something

#Case I - referencing
b = a
#Case II - creating a new function to call the first
def b(something):
    return a(something)
Run Code Online (Sandbox Code Playgroud)

哪个风格更好?两者都有缺点吗?

Eld*_*Eld 5

取决于你需要什么.

def a(something):
    return something*something

b = a

def a(something):
    return something+something

>>> b(3)
9
>>> a(3)
7
Run Code Online (Sandbox Code Playgroud)

如果你做了:

b = lambda x:a(x)
Run Code Online (Sandbox Code Playgroud)

b和a总是会返回相同的

如果你想优化一个额外的函数调用第一种方式更好,如果你想b和a总是返回相同的东西,第二种方式更好.