Yan*_*ani 5 python properties pylint python-decorators
我在这里做了一些非Pythonic的事情吗?或者这是一个 pylint bug?
class Thing(object):
"""
Thing used for stackoverflow example.
"""
def __init__(self, something):
"""
Initialize Thing.
"""
# Set defaults.
self._something = None
# Set values using getter/setter methods - this allows for checks.
self.something = something
@property
def something(self):
"""
Get something
"""
return self._something
@something.setter
def something(self, value):
"""
Set something.
"""
# Some value checking here.
self._something = value
Run Code Online (Sandbox Code Playgroud)
我的印象是使用属性装饰器是实现属性的合理方式。皮林特则不然。Pylint 给我以下错误:
Thing: Too many instance attributes (2/1)
Thing.something: An attribute affected in thing line 10 hide this method
Run Code Online (Sandbox Code Playgroud)
如果我以旧的方式实现该属性,我不会遇到同样的问题。
class Thing(object):
"""
Thing used for stackoverflow example.
"""
def __init__(self, something):
"""
Initialize Thing.
"""
# Set defaults.
self._something = None
# Set values using getter/setter methods - this allows for checks.
self.set_something(something)
def get_something(self):
"""
Get something
"""
return self._something
def set_something(self, value):
"""
Set something.
"""
# Some value checking here.
self._something = value
something = property(get_something, set_something)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
847 次 |
| 最近记录: |