Chr*_* B. 10 python code-analysis pydev
我在Eclipse中使用PyDev开发Python,我的一些代码在代码分析工具中生成错误.特别:
class Group(object):
def key(self, k):
class Subkey(object):
def __enter__(s):
self._settings.beginGroup(k)
return self
def __exit__(s, type, value, tb):
self._settings.endGroup()
return Subkey()
Run Code Online (Sandbox Code Playgroud)
给我一个"Method '__enter__- group' should have self as first parameter"
错误,以及类似的错误__exit__
.有没有办法解决这个问题而不分配self
给另一个变量并在其他方法签名中重用该变量?
Fog*_*ird 19
您可以在首选项中禁用该错误...
Window > Preferences > Pydev > Editor > Code Analysis > Others
Run Code Online (Sandbox Code Playgroud)
或者重构代码......
class Group(object):
def key(self, k):
outer_self = self
class Subkey(object):
def __enter__(self):
outer_self._settings.beginGroup(k)
return outer_self
def __exit__(self, type, value, tb):
outer_self._settings.endGroup()
return Subkey()
Run Code Online (Sandbox Code Playgroud)
你还有什么期望?错误检查可以帮助您.如果您认为它们不是合法错误,请禁用它们或重构代码.
在这种情况下,我会说重构代码.正如King Radical的回答所证明的那样,它更具可读性.他不明白那s
是另一回事self
.
Fab*_*zny 18
Ctrl+1
在PyDev中使用带错误的行将始终为您提供一个修复程序,允许您忽略行中的PyDev错误.在这种特定情况下,它允许您通过添加#@NoSelf
到行尾来忽略错误.Ctrl+1
在需要某些未使用的导入时以及在其他情况下也很有用.
小智 5
您可以使用装饰器:
class aClass:
def __init__(self): # instance-dependent method
self.atribite1 = []
self.atribute2 = 0
@staticmethod
def static(): # static method
pass
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14615 次 |
最近记录: |