Tôi có mã số đó là như:Có cách nào để đạt được quyền truy cập vào các lớp của một phương pháp khi tất cả các bạn có là một callable
class Foo:
def foo(self):
pass
class Bar:
def foo(self):
pass
f = random.choice((Foo().foo, Bar().foo))
Làm thế nào để truy cập Bar
hoặc Foo
từ f?
f.__dict__
không có ích gì, nhưng như repr(f)
cung cấp cho <bound method Bar.foo of <__main__.Bar object at 0x10c6eec18>>'
điều đó phải có thể, nhưng làm cách nào?
Nitpick: Loại cá thể không nhất thiết phải là lớp nơi hàm được xác định; chỉ vì phương thức được ràng buộc với một cá thể X không có nghĩa là hàm không thể được định nghĩa trong lớp Y. Nhưng điều đó nói rằng, mã này chắc chắn sẽ tạo ra kết quả chính xác trong 99,99% các tình huống thực tế. Và dù sao thì không rõ đầu ra dự kiến của OP sẽ ở mức 0,01% như thế nào. –