2016-04-21 31 views
0

當將一個屬性指定不在 pylint的引發錯誤E0237「:分配給類插槽屬性沒有定義」爲什麼pylint在分配時檢查不在__slots__中的成員,但在訪問時不檢查?

然而,它沒有訪問的屬性時不

見下面的例子。

它是「缺少的功能」還是有沒有檢查它的原因?

class Dummyclass(object): 

    __slots__ = ['myvariable'] 

    def __init__(self): 
     self.myvariable = 1 

def main(): 
    dummy = Dummyclass() 

    dummy.doesnotexist = 4 #This raises an error 
    temp = dummy.doesnotexist #This does not 
+0

我得到'dummy.doesnotexist = 4'和'temp = dummy.doesnotexist'的'AttributeError'' – jDo

+0

@jDo:我在運行時收到錯誤信息,但沒有在使用pydev + pylint進行編輯時收到錯誤信息, pycharm。我必須使用這個測試持續幾個小時。我需要在運行時檢測它們。 – Cedric

+0

好吧,我沒有嘗試與pylint,但只是執行代碼的不同變化,並在兩種情況下得到的錯誤。我不知道什麼pylint不同 – jDo

回答

0

經過一些調查研究,我已編輯的文件python_dir \ LIB \站點包\ pylint的\跳棋\添加命令classes.py:在訪問屬性 self._check_in_slots(節點)。 它現在正確檢查訪問以及分配。

相關問題