Các chức năng giúp chia chương trình của chúng tôi thành các phần nhỏ hơn và theo mô-đun. Khi chương trình của chúng ta ngày càng lớn hơn, các chức năng sẽ làm cho chương trình trở nên có tổ chức và dễ quản lý hơn
Hơn nữa, nó tránh lặp lại và làm cho mã có thể tái sử dụng
Cú pháp hàm
def function_name[parameters]: """docstring""" statement[s]
Ở trên được hiển thị là một định nghĩa chức năng bao gồm các thành phần sau
- Từ khóa
2 đánh dấu sự bắt đầu của tiêu đề chức năngdef greet[name]: """ This function greets to the person passed in as a parameter """ print["Hello, " + name + ". Good morning!"]
- Tên chức năng để xác định duy nhất chức năng. Việc đặt tên hàm tuân theo cùng một quy tắc viết mã định danh trong Python
- Các tham số [đối số] mà qua đó chúng ta chuyển các giá trị cho một hàm. Họ là tùy chọn
- Một dấu hai chấm [. ] để đánh dấu phần cuối của tiêu đề chức năng
- Chuỗi tài liệu tùy chọn [docstring] để mô tả những gì chức năng làm
- Một hoặc nhiều câu lệnh python hợp lệ tạo nên thân hàm. Các câu lệnh phải có cùng mức thụt đầu dòng [thường là 4 dấu cách]
- Một câu lệnh
3 tùy chọn để trả về một giá trị từ hàmdef greet[name]: """ This function greets to the person passed in as a parameter """ print["Hello, " + name + ". Good morning!"]
Ví dụ về một chức năng
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
Làm thế nào để gọi một chức năng trong python?
Khi chúng ta đã xác định một hàm, chúng ta có thể gọi nó từ một hàm, chương trình khác hoặc thậm chí là dấu nhắc Python. Để gọi một hàm, chúng ta chỉ cần gõ tên hàm với các tham số thích hợp
>>> greet['Paul']
Hello, Paul. Good morning!
Hãy thử chạy đoạn mã trên trong chương trình Python với định nghĩa hàm để xem đầu ra
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
greet['Paul']
Ghi chú. Trong python, định nghĩa hàm phải luôn xuất hiện trước lệnh gọi hàm. Nếu không, chúng tôi sẽ nhận được một lỗi. Ví dụ,
# function call
greet['Paul']
# function definition
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
# Error: name 'greet' is not defined
tài liệu
Chuỗi đầu tiên sau tiêu đề hàm được gọi là chuỗi tài liệu và là viết tắt của chuỗi tài liệu. Nó được sử dụng ngắn gọn để giải thích những gì một chức năng làm
Mặc dù không bắt buộc, nhưng tài liệu là một cách thực hành lập trình tốt. Trừ khi bạn có thể nhớ những gì bạn đã ăn tối vào tuần trước, hãy luôn ghi lại mã của bạn
Trong ví dụ trên, chúng ta có một chuỗi tài liệu ngay bên dưới tiêu đề hàm. Chúng tôi thường sử dụng ba dấu ngoặc kép để chuỗi tài liệu có thể mở rộng tới nhiều dòng. Chuỗi này có sẵn cho chúng tôi dưới dạng thuộc tính
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
4 của hàmVí dụ
Hãy thử chạy phần sau vào trình bao Python để xem đầu ra
________số 8Để tìm hiểu thêm về chuỗi tài liệu trong Python, hãy truy cập Tài liệu Python
Tuyên bố trở lại
Câu lệnh
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
3 được sử dụng để thoát khỏi một chức năng và quay trở lại vị trí mà nó được gọiCú pháp trả về
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
0Câu lệnh này có thể chứa một biểu thức được đánh giá và giá trị được trả về. Nếu không có biểu thức nào trong câu lệnh hoặc bản thân câu lệnh
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
3 không có trong hàm, thì hàm sẽ trả về đối tượng def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
7Ví dụ
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
3Ở đây,
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
7 là giá trị được trả về vì def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
9 in trực tiếp tên và không sử dụng câu lệnh def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
3Ví dụ về sự trở lại
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
7đầu ra
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
8Hàm hoạt động như thế nào trong Python?
Phạm vi và thời gian tồn tại của các biến
Phạm vi của một biến là một phần của chương trình nơi biến được nhận dạng. Các tham số và biến được xác định bên trong hàm không thể nhìn thấy từ bên ngoài hàm. Do đó, họ có một phạm vi địa phương
Thời gian tồn tại của một biến là khoảng thời gian mà biến đó tồn tại trong bộ nhớ. Thời gian tồn tại của các biến bên trong một hàm miễn là hàm đó thực thi
Chúng bị hủy khi chúng ta quay lại từ chức năng. Do đó, một hàm không nhớ giá trị của một biến từ các lần gọi trước đó
Dưới đây là một ví dụ để minh họa phạm vi của một biến bên trong một hàm
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
0đầu ra
def greet[name]:
"""
This function greets to
the person passed in as
a parameter
"""
print["Hello, " + name + ". Good morning!"]
1Ở đây, chúng ta có thể thấy rằng giá trị của x ban đầu là 20. Mặc dù hàm
>>> greet['Paul']
Hello, Paul. Good morning!
1 đã thay đổi giá trị của x thành 10 nhưng nó không ảnh hưởng đến giá trị bên ngoài hàmĐiều này là do biến x bên trong hàm khác [cục bộ của hàm] với biến bên ngoài. Mặc dù chúng có cùng tên nhưng chúng là hai biến khác nhau với phạm vi khác nhau
Mặt khác, các biến bên ngoài hàm có thể nhìn thấy từ bên trong. Họ có một phạm vi toàn cầu
Chúng ta có thể đọc các giá trị này từ bên trong hàm nhưng không thể thay đổi [ghi] chúng. Để sửa đổi giá trị của các biến bên ngoài hàm, chúng phải được khai báo là biến toàn cục bằng từ khóa
>>> greet['Paul']
Hello, Paul. Good morning!
2