Có thể chuyển số lượng tùy ý các đối số mặc định được đặt tên cho hàm Python có điều kiện không?Điều kiện chuyển số tùy ý các đối số mặc định được đặt tên cho hàm
Ví dụ: có một chức năng:
def func(arg, arg2='', arg3='def')
Bây giờ logic là rằng tôi có một tình trạng mà quyết định nếu arg3 cần phải được thông qua, tôi có thể làm điều đó như thế này:
if condition == True:
func('arg', arg2='arg2', arg3='some value')
else:
func('arg', arg2='arg2')
Câu hỏi là, tôi có thể có một cách viết tắt như:
func('arg', 'arg2', 'some value' if condition == True else # nothing so default gets picked
)
Bạn có gì chống lại ** và *? – Erin
Không có gì chống lại '*' và '**'. Tôi chỉ nghĩ rằng mã ban đầu là dễ đọc hơn. Tôi nghĩ tôi không thích 'a if c else b'. –
Ngoài ra, một số logic có điều kiện có thể được sử dụng (bên ngoài cuộc gọi hàm) để xây dựng một từ điển các đối số.Sau đó, chúng có thể được thông qua với '**'. Điều này vẫn có thể đọc được với số lượng đối số lớn hơn. – Wilduck