Tôi có một lớp tuple có tên trong python
class Town(collections.namedtuple('Town', [
'name',
'population',
'coordinates',
'population',
'capital',
'state_bird'])):
# ...
Tôi muốn chuyển đổi các phiên bản Town thành từ điển. Tôi không muốn nó bị ràng buộc chặt chẽ với tên hoặc số của các lĩnh vực trong Thị trấn.
Có cách nào để viết nó sao cho tôi có thể thêm nhiều trường hơn, hoặc chuyển một tuple hoàn toàn khác có tên và lấy một từ điển.
Tôi không thể thay đổi định nghĩa lớp gốc như trong mã của người khác. Vì vậy, tôi cần lấy một ví dụ của Thị trấn và chuyển đổi nó thành một từ điển.
dict
thay vì 'têntuple', và chuyển têntuple vào trình khởi tạo. Hãy nhớ rằng nếu bạn đã quen với Cxx, class Town(x)
không phải là nhà xây dựng, def __init__(self, *args, **kwargs)
bên trong nó là.
dir
chỉ là một con trăn được tích hợp sẵn ... bạn có thể chạy nó trên bất kỳ đối tượng python nào , trong bàn điều khiển hoặc trong tập lệnh (nơi nó trả về một danh sách bạn có thể in hoặc làm bất cứ điều gì với) và nó sẽ trả về một danh sách (gần như ) tất cả các thuộc tính đối tượng. hữu ích nếu bạn đang cố gắng tìm hiểu làm thế nào một đối tượng không xác định hoạt động.
dir
lệnh, nó sẽ hiển thị cho bạn các trường cho bất kỳ đối tượng nào ... sẽ hiển thị_asdict
chức năng trực tiếp.