Python中变量作为函数时的命名规范

7

Python有针对函数变量的命名约定吗?在PEP-8中没有找到特定的规定(除了变量的命名)。

由于在Python中函数是一等对象,使用“_fn”后缀或类似的东西是否被认为是一种公认的惯例?

编辑:更新了更实际的示例

示例:

def foo_a():
    print 'a'

def foo_b():
    print 'b'

funcs = {'a': foo_a, 'b': foo_b}

# dynamically select function based on some key
key = 'a'
foo_fn = funcs[key]

我不知道是否有惯例,但出于好奇,你为什么要这样做?为什么不直接使用 foo - That1Guy
请注意,foo 在这里也是一个“变量”(我认为术语“名称”更合适),因此如果您分配或定义,实际上并没有什么区别。 - ch3ka
@That1Guy,我之前给出的例子有些牵强附会了。我已经更新为更实际的例子,其中我需要根据某些逻辑动态地分配一个函数。 - Alex
2个回答

5

Python是否有变量的命名约定用于函数?

没有,因为在Python中函数是一等对象。可以像调用函数一样传递函数名称。

例如:

def foo():
    pass

foo() # calling

another_function(foo) # passing foo

在编程中,最困难的事情之一就是正确命名。我会使用更具描述性的名称,可能是一个动词。例如:

def do_nothing():
    pass

编辑:同样的问题,但没有什么可以阻止您在后缀中使用_fn(如果它能使您的代码更清晰):

def foo_a():
    print 'a'

def foo_b():
    print 'b'

funcs = {'a': foo_a, 'b': foo_b}

# dynamically select function based on some key
key = 'a'
foo_fn = funcs[key]

foo_fn() # calling
another_function(foo_fn) # passing

谢谢您的回答,但我刚刚更新了我的问题,添加了一个稍微更好的例子。在您的情况下,您会如何称呼传递给另一个函数的参数? - Alex
2
@Alex,你的意思越来越成为一个主观问题,人们会投票关闭这个问题。如果问题是,“有惯例吗?”那么答案是“没有”。但如果问题是,“我应该叫它什么?”那么这个问题将被关闭。 - Russia Must Remove Putin
谢谢Aaron,是的,我想知道是否有一个公约。 - Alex

0

函数只是Python中的可调用对象的一个子集。 callable 只是一种对象类型,比如 strlist 或者 dict。对于它们的命名没有任何约定,而且我个人不认为 callable 会有任何不同的原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接