war*_*iuc 10 python coding-style naming-conventions
我有一个描述符
class ReferredItem():
def __init__(self, method):
self.method = method
def __get__(self, obj, objtype):
...
Run Code Online (Sandbox Code Playgroud)
我用它作装饰:
class MyClass():
@ReferredItem
some_method(self):
...
Run Code Online (Sandbox Code Playgroud)
我见过装饰器是小写的.但是应该用驼峰的方式命名类.
我应该把这个名字命名为referred_item?或者保持现状?
尽管任何可调用对象都可以用作装饰器,但它们通常被认为是函数,而类似函数的对象应该遵循"lowercase_with_underscores"约定.
你应该隐藏你的装饰器是一个类的事实,因为这是一个实现细节.因此,装饰器应遵循"lowercase_with_underscores"样式.这样,如果有一天您决定将装饰器实现为函数,则不必更改用户代码.
就个人而言,我仍然会使用CapWords作为(内部)装饰器类名,并提供一个应该用于装饰器的别名变量:
class _ReferredItem:
def __init__(self, method):
self.method = method
def __get__(self, obj, objtype):
# ...
referred_item = _ReferredItem
Run Code Online (Sandbox Code Playgroud)