Làm thế nào để bạn tạo một đối số từ khóa cần thiết trong python?

Chúng ta sẽ tạo một hàm có tên là say_things mà chúng ta có thể gọi bằng các hàm

>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
0,
>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
1,
>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
2 để in ra,
>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
3. Nó sẽ hoạt động như thế này

>>> say_things["Trey", ducks=2]
Trey has...
  2 ducks
That's all!

Chúng ta sẽ bắt đầu với một hàm chỉ chấp nhận đối số

>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
4

>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...

Chúng tôi không thể gọi chức năng này với các đối số từ khóa

>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
1 và
>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
2 vì chúng tôi sẽ gặp lỗi

>>> say_things["Trey", ducks=2, cup=1]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: say_things[] got an unexpected keyword argument 'ducks'

Nắm bắt các đối số từ khóa tùy ý

Để chấp nhận bất kỳ đối số từ khóa nào được cung cấp cho hàm này, chúng ta cần sử dụng toán tử

>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
7. Trong định nghĩa hàm của chúng tôi, chúng tôi sẽ đặt
>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
7 và một tên biến [trong trường hợp của chúng tôi là ____0_______9] để nói với Python rằng hàm này sẽ chấp nhận bất kỳ đối số từ khóa nào được cung cấp cho nó và nó sẽ lưu trữ chúng trong một tên biến đó [_______0_______9] sẽ trỏ đến

>>> def say_things[name, **things]:
..     print[f"{name} has..."]
..     print["That's all!"]
...

Khi hàm say_things của chúng tôi được gọi, các khóa trong từ điển

>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
9 sẽ là các tên đối số từ khóa đã cho [_______9_______3 và
>>> say_things["Trey", ducks=2, cup=1]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: say_things[] got an unexpected keyword argument 'ducks'
4 trong ví dụ nguyện vọng ở trên] và các giá trị sẽ là các giá trị được cung cấp cho các đối số đó [
>>> say_things["Trey", ducks=2, cup=1]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: say_things[] got an unexpected keyword argument 'ducks'
5 và
>>> say_things["Trey", ducks=2, cup=1]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: say_things[] got an unexpected keyword argument 'ducks'
6]

Để lặp lại từ điển này, chúng ta sẽ sử dụng phương thức để lấy các bộ giá trị khóa

>>> def say_things[name, **things]:
..     print[f"{name} has..."]
..     for name, count in things.items[]:
..         print[f"  {count} {name}"]
..     print["That's all!"]
...

Vì vậy, chức năng mới này sẽ chấp nhận đối số

>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
4 của chúng tôi và bất kỳ đối số từ khóa nào được cung cấp cho nó. Ví dụ truyền
>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
1 in ra
>>> def say_things[name, **things]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
0

>>> say_things["Trey", ducks=2]
Trey has...
  2 ducks
That's all!

Nếu chúng tôi nói

>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
2 và
>>> def say_things[name, **things]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
2, chúng tôi cũng sẽ thấy những thứ đó được in ra

>>> say_things["Trey", ducks=2, cup=1, ideas=3]
Trey has...
  2 ducks
  1 cup
  3 ideas
That's all!

Tất cả điều này hoạt động vì

>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
7, đang nắm bắt bất kỳ đối số từ khóa nào được cung cấp cho chức năng này vào một từ điển

Đối số từ khóa tùy ý trong Python

Bạn không thực sự thấy

>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
7 được sử dụng thường xuyên. Toán tử này thường được sử dụng nhiều nhất với kế thừa lớp trong Python, nơi bạn đang nắm bắt bất kỳ đối số nào được cung cấp cho lớp của mình và chuyển chúng cho một số lớp cha

Tuy nhiên, có một phương thức trên một trong các kiểu dựng sẵn trong Python sử dụng

>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
7. phương pháp chuỗi

>>> "{n} {item}".format[n=3, item="ducks"]
3 ducks

Phương thức

>>> def say_things[name, **things]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
6 không chỉ chấp nhận đối số
>>> def say_things[name, **things]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
8 và
>>> def say_things[name, **things]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
9, nó chấp nhận bất kỳ đối số từ khóa nào mà chúng ta có thể nghĩ ra để cung cấp cho nó. Chúng ta có thể thấy điều đó bằng cách xem tài liệu về phương pháp
>>> def say_things[name, **things]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
6

>>> help[str.format]

Help on method_descriptor:

format[...]
    S.format[*args, **kwargs] -> str

Bạn có thể thấy rằng phương thức chuỗi

>>> def say_things[name, **things]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
6 chấp nhận
>>> def say_things[name, **things]:
..     print[f"{name} has..."]
..     for name, count in things.items[]:
..         print[f"  {count} {name}"]
..     print["That's all!"]
...
2 và
>>> def say_things[name, **things]:
..     print[f"{name} has..."]
..     for name, count in things.items[]:
..         print[f"  {count} {name}"]
..     print["That's all!"]
...
3. Nó nắm bắt tất cả các đối số vị trí và tất cả các đối số từ khóa được cung cấp cho nó. Vì vậy, phương pháp
>>> def say_things[name, **things]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
6 có thể chấp nhận bất kỳ đối số nào bạn đưa ra cho nó

Sử dụng
>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
7 để chấp nhận các đối số từ khóa tùy ý

Nếu bạn cần viết một hàm chấp nhận các đối số từ khóa tùy ý, bạn có thể sử dụng toán tử

>>> def say_things[name]:
..     print[f"{name} has..."]
..     print["That's all!"]
...
7 trong định nghĩa hàm của mình

Đối số chỉ từ khóa bắt buộc trong Python là gì?

Các đối số chỉ có từ khóa là một thuộc tính khác của các hàm Python đã có từ Python 3. 0 . Các đối số này được chỉ định bằng dấu '*'. Chúng nhắc người dùng nêu từ khóa được sử dụng trong chức năng đã được xác định khi thực hiện cuộc gọi đến cùng một chức năng.

Các đối số từ khóa phải đến khi gọi một hàm trong Python?

Cách xác định và gọi hàm cơ bản trong Python .
Nhập tên chức năng
Tên chức năng phải được theo sau bởi dấu ngoặc đơn. Nếu có bất kỳ đối số bắt buộc nào, chúng phải được chuyển vào trong ngoặc đơn. Nếu hàm không nhận bất kỳ đối số nào, bạn vẫn cần dấu ngoặc đơn

Đối số tham số từ khóa trong Python là gì?

Tham số từ khóa là tham số có giá trị được xác định bằng cách gán giá trị cho tên từ khóa . Các tham số từ khóa phải được nhập sau khi tất cả các tham số vị trí được nhập [nếu có bất kỳ tham số vị trí nào được nhập], sau đó các tham số từ khóa có thể được nhập theo bất kỳ thứ tự nào.

Chủ Đề