我必须添加一个用于创建3D纹理的函数。 我在整个模块中使用蜗牛盒。
我的选择是:
def texture_3d(...):
pass
def texture_3D(...):
pass
def texture3D(...):
pass
我不对意见感兴趣:哪一个看起来更好。我需要一些其他模块的参考资料才能看到最佳实践。
请提及至少1个具有类似功能的模块。
答案 0 :(得分:4)
PEP 8 states小写,函数名称的单词之间有下划线分隔。现在,因为如果3d
/ 3D
是一个真实的单词似乎是固执己见,你会在名字texture_3d
和texture3d
之间产生冲突(d
正在小写)。
查看一些numpy函数,例如lagval3d
,laggrid3d
,hermegrid3d
名称texture3d
看起来是个不错的选择。
在the matplotlib
docs中搜索相似的名称会在<name>3d
和<name>_3d
之间产生混合结果。
简而言之,根据两个主要方案,这两个名字似乎都被接受了。归结为两者之间的个人选择。
答案 1 :(得分:4)
我们可能会问这匹马,而不仅仅依赖于人类的意见? (如'从马的口中取出'。)换句话说,使用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
。
答案 2 :(得分:3)
答案 3 :(得分:3)
简短回答: texture_3d
。
PEP-8说about function names:
功能名称应为小写,单词分隔 强调以提高可读性。
只允许在已经存在的情况下使用mixedCase 主流风格(例如threading.py),向后保留 兼容性。
自&#34;纹理&#34;和&#34; 3d&#34;是两个单独的词,最好在它们之间加上下划线。此外,函数名称应为小写,因此3D
不允许。