Khóa học python

Đối số từ khóa của hàm trong Python

0 phút đọc

Trong lập trình Python, đối số từ khóa (keyword arguments) là một tính năng mạnh mẽ cho phép bạn gọi hàm bằng cách sử dụng tên của các tham số. Điều này giúp mã nguồn trở nên rõ ràng và dễ đọc hơn, đặc biệt khi hàm có nhiều tham số. Bài viết này sẽ hướng dẫn chi tiết về đối số từ khóa của hàm trong Python, bao gồm các chủ đề như định nghĩa đối số từ khóa, cách sử dụng đối số từ khóa, sự khác biệt giữa đối số vị trí và đối số từ khóa, các ví dụ minh họa, và các lưu ý khi sử dụng đối số từ khóa.

Định nghĩa đối số từ khóa

Đối số từ khóa là các đối số được truyền cho hàm bằng cách sử dụng tên của chúng. Khi gọi hàm, bạn có thể chỉ định giá trị cho các tham số bằng cách sử dụng cú pháp parameter=value.

Cú pháp định nghĩa đối số từ khóa

def function_name(parameter1=value1, parameter2=value2, ...):
    # Khối mã của hàm
    pass

Ví dụ về định nghĩa đối số từ khóa

def greet(name, message="Hello"):
    print(f"{message}, {name}!")

# Gọi hàm với đối số từ khóa
greet(name="Alice", message="Good morning")

Cách sử dụng đối số từ khóa

Khi gọi hàm, bạn có thể sử dụng đối số từ khóa để chỉ định giá trị cho các tham số. Điều này giúp mã nguồn trở nên rõ ràng và dễ đọc hơn, đặc biệt khi hàm có nhiều tham số.

Ví dụ về cách sử dụng đối số từ khóa

def greet(name, message="Hello"):
    print(f"{message}, {name}!")

# Gọi hàm với đối số từ khóa
greet(name="Alice", message="Good morning")

# Gọi hàm với đối số từ khóa và đối số vị trí
greet("Bob", message="Good evening")

Sự khác biệt giữa đối số vị trí và đối số từ khóa

Đối số vị trí (positional arguments) được truyền cho hàm theo thứ tự mà chúng được định nghĩa, trong khi đối số từ khóa (keyword arguments) được truyền bằng cách sử dụng tên của chúng. Đối số từ khóa giúp mã nguồn trở nên rõ ràng hơn và cho phép bạn bỏ qua thứ tự của các tham số.

Ví dụ về đối số vị trí và đối số từ khóa

def greet(name, message="Hello"):
    print(f"{message}, {name}!")

# Gọi hàm với đối số vị trí
greet("Alice", "Good morning")

# Gọi hàm với đối số từ khóa
greet(name="Bob", message="Good evening")

# Gọi hàm với đối số vị trí và đối số từ khóa
greet("Charlie", message="Hi")

Kết hợp đối số vị trí và đối số từ khóa

Bạn có thể kết hợp đối số vị trí và đối số từ khóa khi gọi hàm. Tuy nhiên, đối số vị trí phải được truyền trước đối số từ khóa.

Ví dụ về kết hợp đối số vị trí và đối số từ khóa

def greet(name, message="Hello"):
    print(f"{message}, {name}!")

# Gọi hàm với đối số vị trí và đối số từ khóa
greet("Alice", message="Good morning")

# Gọi hàm với đối số từ khóa và đối số vị trí (sẽ gây lỗi)
# greet(name="Bob", "Good evening")  # SyntaxError

Đối số từ khóa chỉ định

Đối số từ khóa chỉ định là các đối số phải được truyền bằng từ khóa. Chúng được định nghĩa sau dấu * trong danh sách tham số.

Cú pháp định nghĩa đối số từ khóa chỉ định

def function_name(*, parameter1, parameter2):
    # Khối mã của hàm
    pass

Ví dụ về đối số từ khóa chỉ định

def greet(*, name, message="Hello"):
    print(f"{message}, {name}!")

# Gọi hàm với đối số từ khóa chỉ định
greet(name="Alice")
greet(name="Bob", message="Good evening")

Đối số từ khóa với giá trị mặc định

Bạn có thể kết hợp đối số từ khóa với giá trị mặc định để tạo ra các hàm linh hoạt hơn. Nếu giá trị cho tham số không được cung cấp khi gọi hàm, giá trị mặc định sẽ được sử dụng.

Ví dụ về đối số từ khóa với giá trị mặc định

def greet(name, message="Hello"):
    print(f"{message}, {name}!")

# Gọi hàm với đối số từ khóa và giá trị mặc định
greet(name="Alice")
greet(name="Bob", message="Good evening")

Lưu ý khi sử dụng đối số từ khóa

Đối số từ khóa phải đứng sau đối số vị trí

Khi gọi hàm, đối số từ khóa phải được truyền sau đối số vị trí. Nếu không, Python sẽ báo lỗi SyntaxError.

Ví dụ về lỗi khi đối số từ khóa đứng trước đối số vị trí

def greet(name, message="Hello"):
    print(f"{message}, {name}!")

# Sai: Đối số từ khóa đứng trước đối số vị trí
# greet(message="Good morning", "Alice")  # SyntaxError

# Đúng: Đối số từ khóa đứng sau đối số vị trí
greet("Alice", message="Good morning")

Đối số từ khóa phải có tên hợp lệ

Tên của đối số từ khóa phải tuân theo các quy tắc đặt tên biến trong Python. Nếu không, Python sẽ báo lỗi SyntaxError.

Ví dụ về lỗi khi tên đối số từ khóa không hợp lệ

def greet(name, message="Hello"):
    print(f"{message}, {name}!")

# Sai: Tên đối số từ khóa không hợp lệ
# greet(name="Alice", 123message="Good morning")  # SyntaxError

# Đúng: Tên đối số từ khóa hợp lệ
greet(name="Alice", message="Good morning")

Kết hợp đối số từ khóa với các loại đối số khác

Bạn có thể kết hợp đối số từ khóa với các loại đối số khác như đối số vị trí, đối số mặc định, và đối số tùy ý.

Ví dụ về kết hợp đối số từ khóa với các loại đối số khác

def greet(name, message="Hello", *args, **kwargs):
    print(f"{message}, {name}!")
    for arg in args:
        print(arg)
    for key, value in kwargs.items():
        print(f"{key}: {value}")

# Gọi hàm với đối số từ khóa và các loại đối số khác
greet("Alice", "Good morning", "How are you?", "Have a nice day!", age=25, location="New York")

Kết luận

Đối số từ khóa là một tính năng mạnh mẽ trong Python, giúp mã nguồn trở nên rõ ràng và dễ đọc hơn. Bài viết này đã giới thiệu chi tiết về cách định nghĩa và sử dụng đối số từ khóa, sự khác biệt giữa đối số vị trí và đối số từ khóa, các ví dụ minh họa, và các lưu ý khi sử dụng đối số từ khóa. Hy vọng rằng bạn đã có thể hiểu rõ hơn về đối số từ khóa trong Python và sẵn sàng viết mã Python của riêng mình.

Avatar
Được viết bởi

TechMely Team

Gợi ý câu hỏi phỏng vấn

Gợi ý bài viết

Bình luận

Chưa có bình luận nào

Khoá học javascript từ cơ bản đến chuyên sâuYoutube Techmely