Argumen sewenang-wenang

Python Tingkat Menengah untuk Pengembang

Jasmin Ludolf

Curriculum Manager

Batasan argumen terdefinisi

def average(values):
    """Find the mean in a sequence of values and round to two decimal places."""

    average_value = sum(values) / len(values)
    rounded_average = round(average_value, 2)
    return rounded_average

# Menggunakan enam argumen print(average(15, 29, 4, 13, 11, 8))
TypeError: average() takes 1 positional argument but 6 were given
Python Tingkat Menengah untuk Pengembang

Argumen posisi sewenang-wenang

  • Docstring membantu menjelaskan cara memakai fungsi kustom

  • Argumen sewenang-wenang memungkinkan fungsi menerima jumlah argumen berapa pun

# Izinkan jumlah argumen posisi (non-keyword) berapa pun
def average(*args):
    # Kode fungsi tetap sama
  • Penamaan konvensional: *args

  • Memungkinkan berbagai penggunaan dengan hasil yang sesuai ekspektasi!

Python Tingkat Menengah untuk Pengembang

Menggunakan argumen posisi sewenang-wenang

# Memanggil average dengan enam argumen posisi
print(average(15, 29, 4, 13, 11, 8))
13.33
Python Tingkat Menengah untuk Pengembang

Args membentuk satu iterable

  • *: Ubah argumen menjadi satu iterable (tuple)
# Menghitung dari beberapa list
print(average(*[15, 29], *[4, 13], *[11, 8]))
13.33
Python Tingkat Menengah untuk Pengembang

Keyword argument sewenang-wenang

# Gunakan keyword argument sewenang-wenang
def average(**kwargs):

average_value = sum(kwargs.values()) / len(kwargs.values()) rounded_average = round(average_value, 2) return rounded_average
  • Keyword argument sewenang-wenang: **kwargs

  • keyword=value

Python Tingkat Menengah untuk Pengembang

Menggunakan keyword argument sewenang-wenang

# Memanggil average dengan enam kwarg
print(average(a=15, b=29, c=4, d=13, e=11, f=8))
13.33
# Memanggil average dengan satu kwarg
print(average(**{"a":15, "b":29, "c":4, "d":13, "e":11, "f":8}))
13.33
  • Setiap pasangan key–value pada dictionary dipetakan ke keyword argument dan nilainya!
Python Tingkat Menengah untuk Pengembang

Kwarg membentuk satu iterable

# Memanggil average dengan tiga kwarg
print(average(**{"a":15, "b":29}, **{"c":4, "d":13}, **{"e":11, "f":8}))
13.33
Python Tingkat Menengah untuk Pengembang

Ayo berlatih!

Python Tingkat Menengah untuk Pengembang

Preparing Video For Download...