Mã của tôi
Tệp đầu tiên:
data = {'school':'DAV', 'standard': '7', 'name': 'abc', 'city': 'delhi'}
my_function[*data]
Tệp thứ 2:
my_function[*data]:
schoolname = school
cityname = city
standard = standard
studentname = name
Trong mã trên, chỉ các khóa từ điển "dữ liệu" được chuyển sang
my_function[*data]:
schoolname = school
cityname = city
standard = standard
studentname = name
6, nhưng tôi muốn các cặp giá trị khóa được truyền. Làm thế nào để sửa chữa cái này?Tôi muốn
my_function[*data]:
schoolname = school
cityname = city
standard = standard
studentname = name
6 được sửa đổi như thế nàymy_function[school='DAV', standard='7', name='abc', city='delhi']
Và đây là yêu cầu của tôi, đưa ra câu trả lời theo điều này
Chỉnh sửa: Lớp khóa từ điển được thay đổi thành tiêu chuẩn
Các loại đối số khác nhau
Đối với bất kỳ chức năng nào trong Python, chúng ta có thể có hai loại đối số tùy ý:
Đối số vị trí: Đây là các đối số chức năng cần được đưa vào hàm theo thứ tự cụ thể khi chúng được xác định.: These are function arguments that need to be fed to the function in the specific order as they were defined.
Đối số từ khóa: Đây là các đối số chức năng đã được đặt tên/từ khóa trong quá trình định nghĩa hàm. Bạn cần xác định từ khóa cụ thể khi chuyển đối số từ khóa [kwarg] cho một hàm.: These are function arguments that have been given a name/keyword during the function definition. You need to identify the specific keyword when passing a keyword argument [kwarg] to a function.
Từ khóa đối số
Đối số từ khóa có thể được cung cấp theo bất kỳ thứ tự nào, nhưng cần được chỉ định với từ khóa của chúng theo cách sau:
Ví dụ cú pháp ở trên cho thấy cách bạn có thể truyền nhiều đối số từ khóa trong một hàm yêu cầu chúng. Bạn cần chỉ định tên của đối số từ khóa theo sau là
my_function[*data]:
schoolname = school
cityname = city
standard = standard
studentname = name
8 và sau đó bằng tham số bạn muốn truyền. Nếu hàm chấp nhận nhiều kwarg, thì bạn có thể chỉ định các tham số của mình theo bất kỳ thứ tự nào. Hàm tự động khớp với từ khóa với các biến chức năng chính xác.Giải nén kwargs và từ điển
Các chức năng với kwarg thậm chí có thể lấy toàn bộ từ điển làm tham số; Tất nhiên, trong trường hợp đó, các khóa của từ điển phải giống như các từ khóa được xác định trong hàm.
Bạn không thể trực tiếp gửi từ điển dưới dạng tham số đến một hàm chấp nhận kwargs. Từ điển phải được giải nén để hàm có thể sử dụng các yếu tố của nó. Điều này được thực hiện bằng cách giải nén từ điển, bằng cách đặt
9 trước tên từ điển khi bạn chuyển nó vào hàm.my_function[*data]: schoolname = school cityname = city standard = standard studentname = name
Sau đây là một chương trình cho thấy cách bạn có thể sử dụng từ điển thay vì nhập từng kwarg.
def myfunc[name, gender, age]:
print [name," is a ", gender, " of age ", age]
mydict = {'name': "Faraz", 'gender': "male", 'age': "20"}
myfunc[**mydict]
Đôi khi, chúng ta cần có một số lượng kwarg khác trong một hàm; Trong những trường hợp như vậy, hàm gói tất cả các đối số trong một từ điển duy nhất.
Sau đây là định nghĩa của một hàm như vậy:
Các chức năng với các định nghĩa tương tự có thể có một số lượng kwarg tùy ý và có thể lấy một từ điển có độ dài tùy ý. Trong trường hợp này [khác với trước đó], các khóa từ điển không cần phải là bất cứ điều gì cụ thể. Điều này có thể được coi là tương tự như gửi một danh sách đến một chức năng.
Ví dụ sau đây giúp chúng tôi hiểu làm thế nào một chức năng như vậy sẽ giải nén và sử dụng từ điển:
def myfunc[**kwargs]:
print["I work with the follwoing people: "]
for people in kwargs:
print [kwargs[people]]
mydict = {'person1': "Faraz", 'person2': "Rukhshan", 'person3': "Muzammil"}
myfunc[**mydict]
Bản quyền © 2022 Giáo dục, Inc. Tất cả quyền được bảo lưu
Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu về các tham số Python
0.: in this tutorial, you’ll learn about the Python my_function[school='DAV', standard='7', name='abc', city='delhi']
my_function[school='DAV', standard='7', name='abc', city='delhi']
0 parameters.Giới thiệu về các tham số Python ** Kwargs
Trong Python, một hàm có thể có một tham số trước hai sao [**]. Ví dụ:
my_function[school='DAV', standard='7', name='abc', city='delhi']
1my_function[school='DAV', standard='7', name='abc', city='delhi']
0 được gọi là tham số từ khóa.Khi một hàm có tham số
my_function[school='DAV', standard='7', name='abc', city='delhi']
0, nó có thể chấp nhận một số lượng biến số từ khóa là từ điển.Hai ngôi sao [
my_function[*data]:
schoolname = school
cityname = city
standard = standard
studentname = name
9] rất quan trọng. Tuy nhiên, tên my_function[school='DAV', standard='7', name='abc', city='delhi']
5 là theo quy ước. Do đó, bạn có thể sử dụng bất kỳ tên có ý nghĩa nào khác như my_function[school='DAV', standard='7', name='abc', city='delhi']
6 và my_function[school='DAV', standard='7', name='abc', city='delhi']
7.Ví dụ sau đây xác định một hàm được gọi là
my_function[school='DAV', standard='7', name='abc', city='delhi']
8 chấp nhận tham số my_function[school='DAV', standard='7', name='abc', city='delhi']
0:Code language: Python [python]
def connect[**kwargs]: print[type[kwargs]] print[kwargs]
Cuộc gọi chức năng sau đây hiển thị một từ điển trống lên màn hình:
Code language: Python [python]
connect[]
Output:
Code language: Python [python]
{}
Trong ví dụ này, chúng tôi đã không chuyển bất kỳ đối số nào cho hàm
my_function[school='DAV', standard='7', name='abc', city='delhi']
8, my_function[school='DAV', standard='7', name='abc', city='delhi']
5 là từ điển trống.Sau đây gọi hàm
my_function[school='DAV', standard='7', name='abc', city='delhi']
8 và truyền một số đối số từ khóa vào đó:Code language: Python [python]
connect[server='localhost', port=3306, user='root', password='Py1hon!Xt']
Nó hiển thị từ điển sau đến màn hình:
Code language: Python [python]
{'server': 'localhost', 'port': 3306, 'user': 'root', 'password': 'Py1hon!Xt'}
Bên trong hàm
my_function[school='DAV', standard='7', name='abc', city='delhi']
8, bạn có thể sử dụng đối số my_function[school='DAV', standard='7', name='abc', city='delhi']
5 làm từ điển.Nếu bạn muốn chuyển một từ điển cho chức năng, bạn cần thêm hai sao [
my_function[*data]:
schoolname = school
cityname = city
standard = standard
studentname = name
9] vào đối số như thế này:my_function[*data]:
schoolname = school
cityname = city
standard = standard
studentname = name
0Nếu một hàm có tham số
my_function[school='DAV', standard='7', name='abc', city='delhi']
0 và các tham số khác, bạn cần đặt my_function[school='DAV', standard='7', name='abc', city='delhi']
0 sau các tham số khác. Nếu không, bạn sẽ gặp lỗi.Cú pháp của hàm
my_function[school='DAV', standard='7', name='abc', city='delhi']
8 sau đây là chính xác:my_function[*data]:
schoolname = school
cityname = city
standard = standard
studentname = name
1Tuy nhiên, cú pháp của hàm này gây ra cú pháp:
my_function[*data]:
schoolname = school
cityname = city
standard = standard
studentname = name
2Sử dụng cả đối số *args và ** kwargs
Hàm sau có cả hai tham số *arg và ** kwargs:
my_function[*data]:
schoolname = school
cityname = city
standard = standard
studentname = name
3Hàm
9 có thể chấp nhận một số lượng biến số của các đối số vị trí. Python sẽ đóng gói chúng như một tuple và gán tuple cho đối sốdef myfunc[name, gender, age]:
print [name," is a ", gender, " of age ", age]
mydict = {'name': "Faraz", 'gender': "male", 'age': "20"}
myfunc[**mydict]
0.def myfunc[**kwargs]:
print["I work with the follwoing people: "]
for people in kwargs:
print [kwargs[people]]
mydict = {'person1': "Faraz", 'person2': "Rukhshan", 'person3': "Muzammil"}
myfunc[**mydict]
Hàm
9 cũng chấp nhận một số lượng các đối số từ khóa. Python sẽ đóng gói chúng như một từ điển và gán từ điển cho đối sốdef myfunc[name, gender, age]:
print [name," is a ", gender, " of age ", age]
mydict = {'name': "Faraz", 'gender': "male", 'age': "20"}
myfunc[**mydict]
my_function[school='DAV', standard='7', name='abc', city='delhi']
5.Ví dụ:
my_function[*data]:
schoolname = school
cityname = city
standard = standard
studentname = name
4Output:
my_function[*data]:
schoolname = school
cityname = city
standard = standard
studentname = name
5Bản tóm tắt
- Sử dụng tham số Python
0 để cho phép hàm chấp nhận một số lượng biến số của các đối số từ khóa.my_function[school='DAV', standard='7', name='abc', city='delhi']
- Bên trong hàm, đối số
5 là một từ điển chứa tất cả các đối số từ khóa là các cặp giá trị tên của nó.my_function[school='DAV', standard='7', name='abc', city='delhi']
- Trước các ngôi sao kép [
9] đến một đối số từ điển để chuyển nó sang tham sốmy_function[*data]: schoolname = school cityname = city standard = standard studentname = name
0.my_function[school='DAV', standard='7', name='abc', city='delhi']
- Luôn đặt tham số
0 ở cuối danh sách tham số hoặc bạn sẽ gặp lỗi.my_function[school='DAV', standard='7', name='abc', city='delhi']
Bạn có thấy hướng dẫn này hữu ích không?