Sunday, January 19, 2025

[Python] Lesson 22 – Nested function calls

-

Nested function calls là việc gọi một hàm bên trong một hàm khác, có nghĩa là kết quả của một hàm được truyền vào như là đối số cho hàm khác hoặc hàm được gọi trong hàm.

Ví dụ:

  • Truyền kết quả của một hàm làm đối số cho hàm khác:
def square(x):
    return x**2

def add(x, y):
    return x + y

result = add(square(2), 3)
print(result) # kết quả là 7

Trong ví dụ này, hàm square() được gọi trước và trả về kết quả là 4, kết quả này được truyền vào hàm add() làm đối số đầu tiên cùng với đối số thứ hai là 3. Hàm add() thực hiện phép tính và trả về kết quả là 7.

  • Sử dụng kết quả của một hàm để gọi hàm khác:
def square(x):
    return x**2

def multiply(x, y):
    return x * y

result = multiply(square(2), 3)
print(result) # kết quả là 12

Trong ví dụ này, hàm square() được gọi trước và trả về kết quả là 4, kết quả này được sử dụng để gọi hàm multiply() làm đối số đầu tiên cùng với đối số thứ hai là 3. Hàm multiply() thực hiện phép tính và trả về kết quả là 12.

  • Lồng nhau nhiều hàm:
def add(x, y):
    return x + y

def multiply(x, y):
    return x * y

def square_and_multiply(x, y):
    return multiply(square(x), y)

result = square_and_multiply(2, 3)
print(result) # kết quả là 12

Trong ví dụ này, hàm square_and_multiply() lồng hai hàm khác là square()multiply(). Hàm này tính bình phương của đối số đầu tiên bằng cách gọi hàm square() và nhân kết quả này với đối số thứ hai bằng cách gọi hàm multiply(). Kết quả trả về là 12.

  • Giả sử trong môi trường Linux, bạn cần thực hiện một tác vụ đơn giản là tạo một thư mục và sao chép một file vào thư mục đó. Bạn có thể sử dụng nested function calls trong Python để thực hiện tác vụ này:
import os

def create_directory_and_copy_file(source_path, dest_dir):
    # Tạo thư mục mới nếu nó chưa tồn tại
    if not os.path.exists(dest_dir):
        os.mkdir(dest_dir)

    # Sao chép file vào thư mục mới
    os.system("cp {} {}/".format(source_path, dest_dir))

# Gọi hàm create_directory_and_copy_file để tạo thư mục và sao chép file
create_directory_and_copy_file("/home/user/myfile.txt", "/home/user/myfolder")

Trong ví dụ này, hàm create_directory_and_copy_file() là một nested function calls, bao gồm hai hàm con: os.path.exists()os.mkdir(), cả hai hàm này được gọi bên trong hàm create_directory_and_copy_file(). Ngoài ra, để sao chép file vào thư mục mới, ta sử dụng một nested function call khác os.system().

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories