câu hỏi Simmilar (liên quan với python2: Python: check if method is static)Python3: kiểm tra xem phương pháp là tĩnh
Lets concider sau định nghĩa lớp:
class A:
def f(self):
return 'this is f'
@staticmethod
def g():
return 'this is g'
Trong Python 3 không có instancemethod
nữa, tất cả mọi thứ là chức năng, vì vậy câu trả lời liên quan đến Python 2 sẽ không hoạt động nữa.
Như tôi đã nói, mọi thứ đều hoạt động, vì vậy chúng tôi có thể gọi A.f(0)
, nhưng tất nhiên chúng tôi không thể gọi số A.f()
(đối số missmatch). Nhưng nếu chúng ta tạo ra một cá thể a=A()
và chúng ta gọi a.f()
Python chuyển tới hàm A.f
là đối số đầu tiên. Gọi số a.g()
không thể gửi hoặc chụp self
- vì vậy phải có cách kiểm tra xem điều này có phải là staticmethod hay không.
Vì vậy, chúng tôi có thể kiểm tra bằng Python3 nếu phương thức được khai báo là static
hay không?
Tôi có thể hỏi lý do tại sao bạn đang cố gắng để làm điều này? –
tất nhiên, tôi đang tạo khuôn khổ plugin của riêng mình và tôi muốn kiểm tra một số khai báo giao diện và tôi rất muốn biết điều gì đó đã được khai báo là staticmethod hay không :) –