Tôi đang cố gắng để làm như sau trong python:lưu trữ chức năng python ràng buộc trong một đối tượng lớp
Trong một tập tin gọi là foo.py:
# simple function that does something:
def myFunction(a,b,c):
print "call to myFunction:",a,b,c
# class used to store some data:
class data:
fn = None
# assign function to the class for storage.
data.fn = myFunction
Và sau đó trong một tập tin gọi bar.py : nhập khẩu foo
d = foo.data
d.fn(1,2,3)
Tuy nhiên, tôi nhận được lỗi sau:
TypeError: unbound method f() must be called with data instance as first argument (got int instance instead)
Điều này là công bằng, tôi giả sử - python đang xử lý d.myFunction như một phương thức lớp. Tuy nhiên, tôi muốn nó coi nó như một hàm bình thường - vì vậy tôi có thể gọi nó mà không cần phải thêm một tham số 'self' chưa sử dụng vào định nghĩa myFunction.
Vì vậy, câu hỏi là:
Làm thế nào tôi có thể lưu trữ một hàm trong một lớp đối tượng không có chức năng bị ràng buộc vào lớp đó?
Tôi nghĩ bạn định sử dụng: d.fn (1,2,3) và không phải d.myFunctions (1,2,3) –
có, tôi nghĩ bạn có nghĩa là d.fn() – hop
Giải pháp dưới đây, nhưng tại sao bạn muốn điều này? – orip