Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Python Mengendalikan Argumen Pembolehubah dalam Fungsi?

Bagaimanakah Python Mengendalikan Argumen Pembolehubah dalam Fungsi?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-08 10:43:18431semak imbas

How Does Python Handle Variable Arguments in Functions?

Melalukan Argumen Pembolehubah kepada Fungsi

Dalam pengaturcaraan, selalunya terdapat senario di mana fungsi perlu menerima bilangan argumen yang berubah-ubah. Dalam C dan C , ini dicapai menggunakan varargs.

Pendekatan Python

Python juga menyokong ciri ini, tetapi ia memerlukan pendekatan yang sedikit berbeza:

Bukan- Hujah Kata Kunci:

Untuk menerima bilangan pembolehubah bukan kata kunci argumen, anda boleh menggunakan sintaks khas *args. Apabila fungsi dipanggil dengan lebih banyak argumen daripada parameter yang ditentukan, argumen tambahan akan dikumpulkan secara automatik ke dalam tuple bernama args.

def manyArgs(*args):
  print("I was called with", len(args), "arguments:", args)

manyArgs(1)  # Output: I was called with 1 arguments: (1,)
manyArgs(1, 2, 3)  # Output: I was called with 3 arguments: (1, 2, 3)

Python secara automatik membongkar argumen ke dalam tuple, menjadikannya mudah untuk mengakses setiap argumen secara individu.

Hujah Kata Kunci:

Tidak seperti varargs dalam C/C , Python tidak membenarkan hujah kata kunci berubah dengan cara yang sama. Untuk menyokong hujah kata kunci pembolehubah, anda perlu menentukan parameter berasingan secara manual untuk argumen kata kunci, biasanya dinamakan **kwargs.

def manyArgsWithKwargs(num, *args, **kwargs):
  # Non-keyword arguments
  print(f"Non-keyword arguments: {args}")

  # Keyword arguments
  print(f"Keyword arguments: {kwargs}")

manyArgsWithKwargs(1, 2, 3, key1="value1", key2="value2")

Pendekatan ini membolehkan anda menerima nombor pembolehubah bagi kedua-dua argumen bukan kata kunci dan kata kunci dalam fungsi yang sama.

Atas ialah kandungan terperinci Bagaimanakah Python Mengendalikan Argumen Pembolehubah dalam Fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn