1
我想創建一個執行特定任務的python裝飾器,但是也執行@staticmethod所做的事情。我已經完成了這一點,但使用PyDev,它告訴我,用法不正確,因爲該方法沒有self參數。Pydev在@staticmethod重新實現中顯示錯誤
我簡單的實現如下:
class Service(object):
def __init__(self, f):
self.f = f
def __get__(self, obj, objtype=None):
return self.f
和用法是:
class Environment:
@Service
def getConfig(input):
return 50
當我運行這個Python程序,一切都運行良好,但PyDev的認爲這是一個錯誤。有沒有一些簡單的方法來禁用檢查pydev中的這種類型的錯誤,同時保持其功能的其餘部分存在?
你也可以考慮使用兩個裝飾器 - 鏈接@staticmethod和@Service(這也可能是一個函數)。我個人也認爲裝飾者應該使用方法/函數/模塊命名約定; `service`而不是`Service`。 (考慮`staticmethod`是一個類。) – 2010-11-30 07:04:47