Sunday, January 19, 2025

[Python] Lesson 21 – Keyword arguments

-

Keyword arguments trong Python là một cách để truyền tham số cho hàm bằng cách xác định tên của các tham số đó. Điều này giúp cho việc đọc và hiểu mã lệnh trở nên dễ dàng hơn, đồng thời cho phép chúng ta truyền các tham số theo bất kỳ thứ tự nào, không nhất thiết phải tuân theo thứ tự các tham số trong khai báo hàm.

Dưới đây là 3 ví dụ về keyword arguments:

  • Ví dụ về sử dụng keyword arguments trong hàm tính toán diện tích hình chữ nhật:
def area(width, height):
    return width * height

# Sử dụng keyword arguments để truyền tham số cho hàm
print(area(width=5, height=10)) # Kết quả: 50
print(area(height=10, width=5)) # Kết quả: 50
  • Ví dụ về sử dụng keyword arguments để truyền các tham số mặc định cho hàm:
def print_info(name, age=30, address='Hanoi'):
    print(f"Name: {name}")
    print(f"Age: {age}")
    print(f"Address: {address}")

# Truyền các tham số bằng keyword arguments
print_info(name='John')
print_info(name='Jane', age=25)
print_info(name='Bob', address='New York')
  • Ví dụ về sử dụng unpacking và keyword arguments để truyền các tham số cho hàm:
def print_student_info(name, age, major):
    print(f"Name: {name}")
    print(f"Age: {age}")
    print(f"Major: {major}")

student_info = {'name': 'John', 'age': 20, 'major': 'Computer Science'}

# Sử dụng unpacking và keyword arguments để truyền các tham số cho hàm
print_student_info(**student_info)

Trong ví dụ thứ 3, chúng ta sử dụng unpacking để chuyển đổi một dictionary thành các keyword arguments, từ đó truyền các tham số cho hàm print_student_info().

  • Một ví dụ trong Linux là, giả sử bạn muốn tìm kiếm tất cả các file có định dạng .txt trong thư mục /home/user/Documents, nhưng muốn lọc kết quả để chỉ hiển thị các file được sửa đổi trong vòng 7 ngày gần đây. Bạn có thể sử dụng keyword arguments trong module os để giải quyết vấn đề này. Dưới đây là một ví dụ code sử dụng keyword arguments trong module os để tìm các file có định dạng .txt và được sửa đổi trong vòng 7 ngày gần đây trong thư mục /home/user/Documents:
import os
import datetime

def search_files(directory, extension='.txt', days=7):
    result = []
    time_threshold = datetime.datetime.now() - datetime.timedelta(days=days)
    for root, dirs, files in os.walk(directory):
        for file in files:
            if file.endswith(extension):
                filepath = os.path.join(root, file)
                file_time = datetime.datetime.fromtimestamp(os.path.getmtime(filepath))
                if file_time > time_threshold:
                    result.append(filepath)
    return result

# Tìm kiếm tất cả các file có định dạng '.txt' trong thư mục /home/user/Documents và được sửa đổi trong vòng 7 ngày gần đây
files = search_files('/home/user/Documents', extension='.txt', days=7)
print(files)

Ở đây, search_files là một hàm có 3 keyword arguments directory, extensiondays. Nếu các keyword arguments không được chỉ định, giá trị mặc định của chúng lần lượt là '.', '.txt'7. Trong ví dụ trên, ta chỉ định rõ các giá trị cho các keyword arguments để tìm các file có định dạng .txt và được sửa đổi trong vòng 7 ngày gần đây trong thư mục /home/user/Documents.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories