cuốn sách gpt4 ai đã làm

python - dataclasses.asdict() không hoạt động như mong đợi

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 23:58:36 27 4
mua khóa gpt4 Nike

Tôi đang sử dụng từ các lớp dữ liệu của lớp dữ liệungười kết án , tôi tìm thấy người kết án Không hoạt động như tôi mong đợi khi tính năng kế thừa được giới thiệu.

tôi sử dụng các lớp dữ liệu để giúp tôi tạo từ điển từ các lớp để tôi có thể chuyển chúng tới django.shortcuts.render.

từ các lớp dữ liệu nhập lớp dữ liệu
từ các lớp dữ liệu nhập khẩu asdict

@dataclass
lớp cơ sở:
tên: str

Kiểm tra lớp (Cơ sở):
def __init__(bản thân, tuổi, *args, **kwargs):
self.age = tuổi
super(Test, self).__init__(*args, **kwargs)

test = Test(tuổi=20, name="john doe")

in(asdict(kiểm tra))

Tôi muốn đầu ra là

{"tuổi": 20, "tên": "john doe"}

Nhưng tất cả những gì tôi nhận được là giá trị từ khóa từ lớp cơ sở

{"name": "john doe"}

câu trả lời hay nhất

che phủlớp dữ liệu Thực hiện đúng việc thừa kế trong tài liệu :

@dataclass
lớp cơ sở:
tên: str

@dataclass
lớp Con (Cơ sở):
tuổi: int

Không có điều này, trong các lớp con __dataclass_fields__ tài sản(người kết án (dùng để xác định những gì nên có trong từ điển) không biết tất cả các trường bạn quan tâm; nó chỉ có phiên bản kế thừa:

>>> Kiểm tra.__dataclass_fields__
{'tên': Trường(...)}
>>> Test.__dataclass_fields__ là Base.__dataclass_fields__
ĐÚNG VẬY
>>> Con.__dataclass_fields__
{'name': Field(...), 'age': Field(...)}
>>> Child.__dataclass_fields__ là Base.__dataclass_fields__
SAI

Cũng lưu ý rằng bạn có thể đơn giản hóa việc nhập vào:

từ các lớp dữ liệu nhập asdict, dataclass

Về vấn đề python - dataclasses.asdict() không hoạt động như mong đợi, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/56595683/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress