Tôi biết rằng __call__
phương thức trong một lớp được kích hoạt khi thể hiện của một lớp được gọi. Tuy nhiên, tôi không biết khi nào tôi có thể sử dụng phương thức đặc biệt này, bởi vì người ta có thể chỉ cần tạo một phương thức mới và thực hiện cùng một thao tác được thực hiện trong __call__
phương thức và thay vì gọi ví dụ, bạn có thể gọi phương thức.
Tôi thực sự sẽ đánh giá cao nó nếu ai đó cho tôi sử dụng thực tế phương pháp đặc biệt này.
__call__
được ẩn trong chế độ xem đơn giản; đó là cách bạn khởi tạo một lớp: x = Foo()
thực sự x = type(Foo).__call__(Foo)
, nơi __call__
được định nghĩa bởi siêu dữ liệu của Foo
.