Hướng dẫn python main arguments
Dẫn nhậpFunctions là cuộc sống, đúng không? nếu bạn là người mới vào học Python - là lính mới hay nhảy qua từ ngôn ngữ khác - bạn học về số lượng tham số trong định nghĩa function khi đúng toàn bộ tham số thì mới tiếp tục. Đó là nền tảng - thứ giúp chúng ta hiểu rõ từ bên ngoài. Tuy nhiên, nó cũng làm cho các bạn khá choáng váng khi bạn thấy *args hoặc **kwargs trong định nghĩa function. Đừng để cú pháp làm sợ bạn. Nó không phải là những tham số đặc biệt thần thánh. Nó còn thậm chí không quá ảo, và chúng ta sẽ học cách sử dụng nó. Tham số vị trí vs Tham số từ khóaCó 2 khái niệm chúng ta cần phải tách ra nhằm để học*args và **kwargs là gì. Đầu tiên là khác nhau giữa tham số vị trí và tham số từ khóa (Keyword). Ở những function cơ bản nhất, chúng ta chơi trò ghép cặp - đối số 1 sẽ đến tham số 1, đối số 2 đến tham số, và tiếp tục.
Nếu chúng ta cho giá trị mặc định cho tham số trong định nghĩa function, thì nó trở thành không bắt buộc
Ngoài ra, tham số không bắt buộc sẽ trở thành keyword-eligible(từ khóa điều kiện), nghĩa là bạn có thể ghi rõ tên tham số khi gọi function để gán giá trị phù hợp. Hãy gán 3 tham số có giá trị mặc định None và sẽ cách chúng ta gán giá trị không cần sắp xếp.
Toán tử SplatĐể tôi bắt đầu nói tôi yêu thích tên toán tử này - nó rất là … trực quan. * là ký hiệu phổ biến nhất về phép nhân, nhưng ở Python nó còn có nghĩa toán tử Splat. Tôi nghĩa toán tử này như cái hộp piñata - cái hộp nhét bánh kẹo vào trong rồi người ta dùng gậy đập tung nó ra. Tôi đã từng mô tả về toán tử mở rộng - một cái tương đương splat của JavaScript - nó giải nén một chuỗi domino rồi đẩy và một danh sách đơn lớn hơn, nhưng splat bảo đảm tương tự một cái mạnh mẽ hơn. Một ví dụ cơ bản để bạn hiểu rõ hơn.
Trong ví dụ trên, chúng ta mang dữ liệu của a và giải nén đẩy vào toàn bộ list b. Cách sử dụng *args và **kwargsVậy chúng ta đã biết toán tử splat giải nén toàn bộ dữ liệu có kí hiệu *, và có 2 loại tham số function. Vậy, nếu bạn chưa phát hiện ra, *args là viết tắt của (arguments) đối số, **kwargs là viết tắt của (keyword arguments) đối số từ khóa. Nó được sử dụng để giải nén ra loại đối số tương ứng, cho phép gọi function có list đối số có số lượng giá trị thay đổi. Ví dụ, tạo một function in ra các điểm kiểm tra.
Ủa khoan đã!!! Tôi không đặt tên *args? Đúng rồi, “args” chỉ là quy ước tiêu chuẩn nhưng vẫn chỉ là tên gọi. Bí mật đã được bật mí, trong *args, dấu * thực sự là dân chơi, tạo 1 list mà toàn bộ giá trị là những đối số tương ứng khi gọi function. Điều đó đã rõ ràng, **kwargs trở nên sẽ hiểu sâu. Cái tên không quan trọng, ** tạo ra một dictionary mà toàn bộ giá trị là là những đối số từ khóa khi gọi function. Để minh họa, hãy tạo 1 function và in tên các con vật của người đó.
Lưu ýMột vài lời khôn ngoan sẽ giúp bạn tránh lỗi thông thường và mở rộng kiến thức của bạn.
KếtNhư vậy chúng ta đã tìm hiểu về *args và **kwargs trong Python là gì? Bài viết được dịch từ Medium.com. Bạn có thể tham khảo bài viết gốc tại đây: What Are *args and **kwargs in Python? Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”. Thảo luậnNếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng. |