sách gpt4 ăn đã đi

Làm cách nào để tránh mẫu "self.x = x; self.y = y; self.z = z" trong __init__?

In lại Tác giả: IT Lão Cao Thời gian cập nhật: 28-10-2023 12:22:46 29 4
mua khóa gpt4 giày nike

Tôi thấy một mô hình tương tự

định nghĩa __init__(bản thân, x, y, z):
...
tự.x = x
tự.y = y
tự.z = z
...

Rất thường xuyên, thường có nhiều thông số hơn. Có cách nào tốt để tránh sự lặp lại tẻ nhạt này? Liệu lớp học có nên bắt đầu từ têntuple kế thừa?

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

Tuyên bố từ chối trách nhiệm:Dường như có một số người lo ngại về việc đưa ra giải pháp này, vì vậy tôi sẽ đưa ra tuyên bố từ chối trách nhiệm rất rõ ràng. Bạn không nên sử dụng giải pháp này. Tôi chỉ cung cấp thông tin này dưới dạng thông tin để bạn biết ngôn ngữ có thể thực hiện việc này. Các câu trả lời còn lại chỉ thể hiện trình độ ngôn ngữ hơn là hỗ trợ việc sử dụng chúng theo cách này.


Không có gì sai khi sao chép rõ ràng các tham số vào thuộc tính. Việc có quá nhiều tham số trong một ctor đôi khi được coi là mùi mã và có lẽ bạn nên nhóm các tham số thành ít đối tượng hơn. Những lần khác, điều này là cần thiết mà không có bất kỳ vấn đề gì. Bất kể, làm điều này một cách rõ ràng là con đường để đi.

Tuy nhiên, vì bạn đang hỏi cách thực hiện (chứ không phải liệu có nên thực hiện hay không), nên có một giải pháp là:

lớp A:
def __init__(bản thân, **kwargs):
cho khóa trong kwargs:
setattr(bản thân, khóa, kwargs[khóa])

a = A(l=1, d=2)
al # sẽ trả về 1
quảng cáo # sẽ trả về 2

Giới thiệu về python - Làm cách nào để tránh mẫu "self.x = x; self.y = y; self.z = z" trong __init__? , 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/35190877/

29 4 0
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