Tôi có một đối tượng python với một số thuộc tính và phương thức. Tôi muốn lặp lại các thuộc tính đối tượng.
class my_python_obj(object):
attr1='a'
attr2='b'
attr3='c'
def method1(self, etc, etc):
#Statements
Tôi muốn tạo một từ điển chứa tất cả các thuộc tính đối tượng và các giá trị hiện tại của chúng, nhưng tôi muốn thực hiện nó theo cách động (vì vậy nếu sau này tôi thêm một thuộc tính khác thì tôi cũng không phải nhớ cập nhật chức năng của mình).
Trong các biến php có thể được sử dụng làm khóa, nhưng các đối tượng trong python không thể mô tả được và nếu tôi sử dụng ký hiệu dấu chấm cho việc này, nó sẽ tạo ra một thuộc tính mới với tên var của tôi, đây không phải là ý định của tôi.
Chỉ để làm cho mọi thứ rõ ràng hơn:
def to_dict(self):
'''this is what I already have'''
d={}
d["attr1"]= self.attr1
d["attr2"]= self.attr2
d["attr3"]= self.attr3
return d
·
def to_dict(self):
'''this is what I want to do'''
d={}
for v in my_python_obj.attributes:
d[v] = self.v
return d
Cập nhật: Với các thuộc tính tôi chỉ có nghĩa là các biến của đối tượng này, không phải các phương thức.
predicate
đối số tùy chọn để truyền một hàm có thể gọi ra các hàm (bị ràng buộc?) (loại bỏ các phương thức).