Phương pháp lập trình chức năng giúp chúng ta dễ dàng lập trình DRY [không lặp lại chính mình]. Đó là lập trình khai báo trong đó các chương trình được tạo bằng các hàm tuần tự thay vì viết tất cả các câu lệnh. Chúng tôi có thể tái sử dụng chúng theo nhu cầu của chúng tôi. Hàm chúng ta tạo nhận một số đầu vào và trả về một số đầu ra hoặc thực hiện một số thao tác. Bây giờ, đầu vào có thể là đối số hoặc chỉ thị từ I/O. Hôm nay trong bài viết này, chúng ta sẽ thảo luận về một phương pháp cung cấp đầu vào cho chức năng như vậy, tôi. e. , Đối số từ khóa trong python. Vì vậy, chúng ta hãy đi
nội dung
Đối số từ khóa trong Python là gì?
Trong khi xác định một chức năng, chúng tôi thiết lập một số tham số bên trong nó. Chúng tôi chấp nhận dữ liệu trong các tham số này từ các lệnh gọi hàm. Bây giờ, python cung cấp tính năng chấp nhận các tham số theo nhiều cách, e. g. , đối số vị trí hoặc đối số từ khóa. Đối số từ khóa được sử dụng khi chúng ta sử dụng để gán giá trị cho tham số chức năng dưới dạng cặp khóa-giá trị. Nói một cách đơn giản, chúng tôi sử dụng các đối số từ khóa để gán giá trị cho một biến cụ thể
Tại sao chúng ta cần Đối số từ khóa?
Trong khi truyền đối số cho hàm, đôi khi chúng ta biết số lượng tham số; . Cả hai kịch bản được gọi là số lượng đối số cố định hoặc số lượng đối số tùy ý tương ứng. Đối số từ khóa cung cấp cho chúng tôi khả năng xử lý số lượng đối số tùy ý dưới dạng cặp khóa-giá trị. Các đối số từ khóa bắt đầu bằng ký hiệu “**” theo sau là tên biến. Hãy xem một số ví dụ để hiểu rõ hơn về chúng
ví dụ 1. Truyền đối số cho tham số Keyword
# Example on arguments and keyword arguments def func[a,*args,**kwargs]: print[a] # Using arbitrary number of arguments as positional argument for arg in args: print[arg] # Using arbitrary number of arguments as keyword argument for key,value in kwargs.items[]: print['{} = {}'.format[key,value]] func['Hii','I','am',name ='Python Pool', From ='Latracal Solution']
đầu ra
Hii
I
am
name = Python Pool
From = Latracal Solution
Giải trình
Vì vậy, trong ví dụ trên, chúng tôi đã tạo một hàm và sau đó sử dụng ba loại tham số để chấp nhận đối số. Đầu tiên là một tham số đã biết, thứ hai là chấp nhận một số đối số tùy ý và cuối cùng là chấp nhận số lượng đối số từ khóa. Sau đó, chúng ta sử dụng vòng lặp for để truy cập các phần tử trong biến args và kwargs
Phổ biến bây giờ
Hướng dẫn cơ bản về Python __all__
ví dụ 2. Truyền từ khóa dưới dạng Đối số
def func[arg1,arg2,arg3,arg4]: print[arg1] print[arg2] print[arg3] print[arg4] a = ["This","is",'positional','argument'] b = {"arg1":'This','arg2':'is','arg3':'keyword','arg4':'argument'} # Passing positional argument to the function func[*a] print["---------"] # Passing keyword argument to the function func[**b]
đầu ra
This
is
positional
argument
---------
This
is
keyword
argument
Giải trình
Chúng tôi đã tạo một bộ và một từ điển để chuyển chúng làm đối số trong ví dụ trên. Điều này chứng tỏ rằng cũng dễ dàng chuyển nhiều giá trị để hoạt động dưới dạng đối số. Chúng ta cần tạo các biến và sử dụng “*” và “**” để chỉ định các loại đối số.
ví dụ 3. Đối số từ khóa dưới dạng từ điển Python
Vậy, bạn đã bao giờ nghĩ về cách các đối số từ khóa này hoạt động chưa? . Tất cả điều này xảy ra bởi vì các đối số chúng tôi chuyển được chuyển dưới dạng từ điển. Nó giúp ánh xạ mượt mà tới mọi khóa cho các giá trị tương ứng mà không làm mất thực thể của nó. Hãy xem ví dụ. map to their values when passing as the arguments. All this happens because the arguments we pass are passed in the form of a dictionary. It helps smooth mapping to every key for corresponding values without losing its entity. Let’s see the example.
def kwargs_to_dict[**kwargs]: print[type[kwargs]] print[kwargs] kwargs_to_dict[name ='Python Pool', From ='Latracal Solution']
đầu ra
{'name': 'Python Pool', 'From': 'Latracal Solution'}
Giải trình
Như vậy, trong ví dụ trên, chúng ta đã thấy kiểu dữ liệu của biến kwargs là gì và sau đó in ra để lấy nội dung của nó
Phổ biến bây giờ
Mọi thứ về Python SortedDict
Ví dụ 4. Đối số từ khóa sử dụng chức năng Lambda
Bên cạnh tất cả các tính năng của hàm lambda, nó còn tương thích với nhiều tham số trong khi làm việc. Bây giờ, các tham số này ở dạng đối số hoặc đối số từ khóa. Hãy xem ví dụ và tìm hiểu cách chúng ta có thể xử lý điều đó
x = [lambda **kwargs : sum[kwargs.values[]]/len[kwargs]] x[one = 1, two = 2, three = 3]
đầu ra
2.0
Giải trình
Vì vậy, trong ví dụ trên, chúng ta có thể thấy rằng chúng ta đã tạo một hàm lambda x. Và chúng tôi đã sử dụng ba đối số từ khóa để gọi hàm và sau đó cố gắng tìm giá trị trung bình của nó. Để truy cập từng giá trị từ từ điển, chúng tôi đã sử dụng hàm values[] rồi tính giá trị trung bình của nó
Ví dụ 5. Đối số từ khóa Python Argparse
________số 8
Giải trình
Trong ví dụ trên, trước tiên chúng ta tạo một lớp kế thừa từ lớp agrparse nơi chúng ta viết một loại mã tương tự như được giải thích trong ví dụ 2 để thêm các phần tử vào từ điển. Sau đó, chúng tôi đã khởi tạo một đối tượng cho argparse. Argparse để giữ các giá trị của đối số từ CLI. Sau đó, chúng tôi đã thêm phần tử đó vào biến trình phân tích cú pháp, phân tích cú pháp các đối số và đưa nó vào biến args. Và sau đó in các giá trị của từ điển.
xu hướng
[Đã sửa] ModuleNotFoundError. Không có mô-đun nào có tên Pycocotools
Câu hỏi thường gặp về Đối số từ khóa trong Python
Q1] Sự khác biệt giữa đối số và đối số từ khóa trong python là gì?
Đối số hoặc đối số Vị trí phải được chuyển không chính xác, trong khi đối số từ khóa phải được chuyển với từ khóa tương ứng với một số giá trị
Q2] Các đối số từ khóa có thể theo bất kỳ thứ tự nào không?
Có, nó được chuyển dưới dạng từ điển, vì vậy các đối số có sẵn dưới dạng các cặp khóa-giá trị. Do đó, thứ tự của nó không thành vấn đề
Câu 3] Từ khóa so với. đối số vị trí python?
Các đối số từ khóa được truyền dưới dạng đối số để thuận tiện cho việc nhận các giá trị tương ứng với một số khóa. Để so sánh, các đối số vị trí được thông qua dựa trên vị trí của chúng
Phần kết luận
Vì vậy, hôm nay trong bài viết này, chúng ta đã học đối số từ khóa trong python và cách chúng ta có thể sử dụng chúng để truyền đối số cho một hàm và chấp nhận chúng làm đối số. Tôi hy vọng bài viết này đã giúp bạn. Cảm ơn