我試圖創建一個具有剩余時間屬性的類,并在其中執行函式來減少這個時間。以下是代碼
class TestClass。
def __init__(self):
self.time_remaining = 240。
@staticmethoddef time_taken(start)。
return (datetime.now() - start).seconds
def with_timeout(f)。
@wraps(f)
def wrapper(self, *args, **kwargs)。
start = datetime.now()
結果 = f(self, *args, **kwargs)
self.time_remaining = (
self.time_remaining - TestClass.time_taken(start)
)
return result
return wrapper
@with_timeout
def do_something(self, param)。
# DO Something.
當我實體化這個類并使用do_something時,像這樣:
test_class = TestClass()
test_class.do_something("param"/span>)
它按預期作業。然而,當我在代碼上運行pylint時,我得到了一個錯誤:
。
pylint: not-callable / f is not callable
這是否是一個假陽性,或者是否有更好的方法來撰寫這個功能?
謝謝
uj5u.com熱心網友回復:
謝謝你的評論。
def time_taken(start)。
return (datetime.now() - start).seconds
def with_timeout(f)。
@wraps(f)
def wrapper(self, *args, **kwargs)。
start = datetime.now()
結果 = f(self, *args, **kwargs)
self.time_remaining = self.time_remaining - time_taken(start)
return result
return wrapper
class TestClass。
def __init__(self):
self.time_remaining = 240。
@with_timeout
def do_something(self, param)。
# DO Something.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/310481.html
標籤:
上一篇:我必須提供兩次引數arr,一次是在Sorting(arr)中,另一次是在quicksort(arr)中,我怎樣才能只用arr重寫代碼?
