我需要添加一个创建3D纹理的函数。
在整个模块中,我使用蜗牛命名法。
我的选择是:
def texture_3d(...):
pass
def texture_3D(...):
pass
def texture3D(...):
pass
函数应该取什么名字?
我并不关心意见:哪个看起来更好。我需要一些参考其他模块的内容来看最佳实践。
请至少提到一个具有类似功能的模块。
我需要添加一个创建3D纹理的函数。
在整个模块中,我使用蜗牛命名法。
我的选择是:
def texture_3d(...):
pass
def texture_3D(...):
pass
def texture3D(...):
pass
我并不关心意见:哪个看起来更好。我需要一些参考其他模块的内容来看最佳实践。
请至少提到一个具有类似功能的模块。
与其仅依赖人类意见,也许我们可以问问马的想法?(比如从“马嘴里”得到信息。)换句话说,使用 pylint
。
我修改了你的代码,以便生成更少的消息。
''' some information here'''
def texture_3d(parameters):
''' a docstring'''
return parameters
def texture_3D(parameters):
''' a docstring'''
return parameters
def texture3D(parameters):
''' a docstring'''
return parameters
pylint的结果如下:
************* Module temp
C: 7, 0: Invalid function name "texture_3D" (invalid-name)
C: 11, 0: Invalid function name "texture3D" (invalid-name)
------------------------------------------------------------------
Your code has been rated at 6.67/10 (previous run: 5.00/10, +1.67)
这只留下了选项texture_3d
。
PEP 8规定函数名应使用下划线分隔的小写单词。由于3d
/3D
是否是实际单词存在争议,因此在名称texture_3d
和texture3d
(其中d
为小写)之间会产生冲突。
看一些numpy函数,例如lagval3d
, laggrid3d
, hermegrid3d
,名称texture3d
似乎是一个不错的选择。
在matplotlib
文档中搜索类似名称会得到<name>3d
和<name>_3d
之间的混合结果。
简而言之,这两个名称都被两个主要包接受。只是个人对这两者之间的选择。
numpy
和matplotlib
都是很好的例子。我将调用函数texture3d(...)
。 - Szabolcs Dombi简短回答: texture_3d
。
PEP-8对于函数名称的规定如下(关于函数名称):
函数名称应该是小写的,必要时使用下划线分隔单词以提高可读性。
混合大小写只允许在已经存在这种风格的情况下(例如threading.py),以保留向后兼容性。
由于“纹理”和“3D”是两个不同的单词,因此在它们之间放置下划线是一个好习惯。此外,函数名应该是小写的,所以不允许使用3D
。
texture_3D
和texture3D
这样的选项真的很糟糕,正如你所提到的。我选择了texture3d
作为名称,类似于numpy和matplotlib中的函数命名方式。它也通过了pylint的测试。 - Szabolcs Dombi