Cách gọi một hàm trong Python (Thí dụ)
⚡ Tóm tắt thông minh
Các chức năng trong Python Chúng là các khối mã có thể tái sử dụng, chạy khi được gọi và được định nghĩa bằng câu lệnh `def`. Chúng chấp nhận các đối số, trả về giá trị và dựa vào việc thụt lề nhất quán để nhóm các câu lệnh thuộc về từng hàm.

Chức năng trong là gì Python?
A Chức năng trong Python Là một đoạn mã được thực thi khi được tham chiếu. Nó được sử dụng để sử dụng đoạn mã đó ở nhiều vị trí khác nhau trong chương trình. Nó cũng được gọi là một phương thức hoặc một thủ tục. Python Nó cung cấp nhiều hàm tích hợp sẵn như print(), input(), compile() và exec(), nhưng cũng cho phép bạn tự do tạo ra các hàm của riêng mình.
Cách định nghĩa và gọi hàm trong Python
Một chức năng trong Python được định nghĩa bởi câu lệnh “def” theo sau là tên hàm và dấu ngoặc đơn ( () ).
Ví dụ:
Chúng ta hãy định nghĩa một hàm bằng cách sử dụng lệnh “def func1():” và gọi hàm đó. Kết quả đầu ra của hàm sẽ là “Tôi đang học Python chức năng".
Lệnh gọi hàm func1() thực thi hàm def func1(): của chúng ta và in ra lệnh “Tôi đang học” Python Chức năng None.”
Có một bộ quy tắc trong Python lập trình để xác định một hàm.
- Mọi đối số hoặc tham số đầu vào đều phải được đặt trong dấu ngoặc đơn này.
- Câu lệnh đầu tiên của hàm có thể là một câu lệnh tùy chọn — chuỗi tài liệu hoặc chuỗi mô tả hàm.
- Mã lệnh bên trong mỗi hàm bắt đầu bằng dấu hai chấm (:) và cần được thụt lề (bằng dấu cách).
- Câu lệnh return (biểu thức) thoát khỏi một hàm, tùy chọn trả về một giá trị cho người gọi. Câu lệnh return không có đối số tương đương với return None.
Ý nghĩa của việc thụt lề (dấu cách) trong Python
Trước khi chúng ta làm quen với Python các hàm, điều quan trọng là chúng ta phải hiểu quy tắc thụt lề để khai báo Python các chức năng, và các quy tắc này áp dụng cho các yếu tố khác của Python Ngoài ra, ví dụ như khai báo điều kiện, vòng lặp hoặc biến.
Python Nó tuân theo một kiểu thụt lề cụ thể để định nghĩa mã. Vì vậy, Python Các hàm không có bất kỳ dấu ngoặc nhọn nào để chỉ ra điểm bắt đầu và kết thúc, chúng phải dựa vào thụt lề. Ở đây, chúng ta lấy một ví dụ đơn giản với lệnh “print”. Khi ta viết hàm “print” ngay bên dưới dòng `def func1():`, nó sẽ hiển thị lỗi “indentation error: expected an indented block”.
Bây giờ, khi bạn thêm khoảng trắng vào trước hàm “print”, nó sẽ in ra như mong đợi.
Ít nhất một khoảng thụt lề là đủ để mã của bạn hoạt động thành công. Nhưng theo kinh nghiệm tốt nhất, nên để khoảng thụt lề khoảng 3-4 khoảng trắng khi gọi hàm.
Điều cần thiết là khi khai báo thụt lề, bạn phải duy trì cùng một mức thụt lề cho phần còn lại của mã. Ví dụ, trong ảnh chụp màn hình bên dưới, khi chúng ta gọi một câu lệnh khác “still in func1” và nó không được khai báo ngay bên dưới câu lệnh print đầu tiên, nó sẽ hiển thị lỗi thụt lề: “unindent does not match any other indentation level.”
Bây giờ, khi chúng ta áp dụng cùng một kiểu thụt lề cho cả hai câu lệnh và căn chỉnh chúng trên cùng một dòng, nó sẽ cho ra kết quả như mong đợi.
Giá trị trả về của hàm như thế nào?
Lệnh trả về trong Python Tham số này chỉ định giá trị cần trả về cho hàm gọi. Chúng ta hãy hiểu điều này qua ví dụ sau.
Bước 1) Hàm không trả về bất cứ thứ gì
Ở đây ta thấy khi nào một hàm không "trả về". Ví dụ, ta muốn tính bình phương của 4, và khi đoạn mã được thực thi, kết quả sẽ là "16". Nó cho kết quả đó khi ta chỉ sử dụng đoạn mã "print x*x", nhưng khi gọi hàm "print square" thì lại trả về "None". Điều này là do khi gọi hàm, quá trình đệ quy không diễn ra và nó thoát ra khỏi hàm. Python Trả về “None” nếu bỏ qua phần cuối của hàm.
Bước 2) Thay thế lệnh in bằng lệnh gán.
Để làm rõ hơn, chúng ta thay thế lệnh in bằng lệnh gán. Hãy cùng kiểm tra kết quả.
Khi bạn chạy lệnh “print square (4)”, nó thực sự trả về giá trị của đối tượng. Vì chúng ta không có bất kỳ hàm cụ thể nào để chạy ở đây, nên nó trả về “None”.
Bước 3) Sử dụng hàm 'return' và thực thi đoạn mã.
Bây giờ, chúng ta sẽ xem cách lấy kết quả bằng lệnh “return”. Khi bạn sử dụng hàm “return” và thực thi đoạn mã, nó sẽ trả về kết quả “16”.
Bước 4) Chạy lệnh 'in hình vuông'
Các chức năng trong Python bản thân chúng là một đối tượng và một đối tượng có một giá trị nào đó. Ở đây chúng ta sẽ xem làm thế nào Python Biến này xử lý một đối tượng. Khi bạn chạy lệnh “print square”, nó sẽ trả về giá trị của đối tượng đó. Vì chúng ta không truyền bất kỳ đối số nào, nên chúng ta không có hàm cụ thể nào để chạy ở đây, do đó nó trả về giá trị mặc định (0x021B2D30), đó là vị trí của đối tượng. Trong thực tế, Python Với chương trình này, có lẽ bạn sẽ không bao giờ cần phải làm điều đó.
Đối số trong hàm
Tham số là giá trị được truyền vào hàm khi hàm đó được gọi.
Nói cách khác, ở phía hàm gọi thì nó là một đối số, còn ở phía hàm thực thi thì nó là một tham số.
Chúng ta hãy xem làm thế nào Python Các lập luận có hiệu quả.
Bước 1) Các tham số được khai báo trong định nghĩa hàm. Khi gọi hàm, bạn có thể truyền giá trị cho các tham số đó như được hiển thị bên dưới.
Bước 2) Để khai báo giá trị mặc định cho một đối số, hãy gán giá trị cho nó tại phần định nghĩa hàm.
Ví dụ: x không có giá trị mặc định. Giá trị mặc định của y=0. Khi ta chỉ cung cấp một đối số khi gọi hàm nhân, Python gán giá trị được cung cấp cho x trong khi giữ nguyênping Giá trị của y = 0. Do đó, tích của x*y = 0.
Bước 3) Lần này chúng ta sẽ thay đổi giá trị thành y=2 thay vì giá trị mặc định y=0, và nó sẽ trả về kết quả là (4×2)=8.
Bước 4) Bạn cũng có thể thay đổi thứ tự truyền các tham số. PythonỞ đây, chúng ta đã đảo ngược thứ tự các giá trị x và y thành x=4 và y=2.
Bước 5) Nhiều đối số cũng có thể được truyền dưới dạng mảng. Trong ví dụ này, chúng ta gọi nhiều đối số (1,2,3,4,5) bằng cách gọi hàm (*args).
Ví dụ: Chúng ta đã khai báo nhiều đối số là các số (1,2,3,4,5); khi chúng ta gọi hàm (*args), nó sẽ in ra kết quả là (1,2,3,4,5).
Lời khuyên:
- In Python 2.7, tính năng nạp chồng hàm không được hỗ trợ. Nạp chồng hàm là khả năng tạo ra nhiều phương thức có cùng tên nhưng có cách triển khai khác nhau. Nạp chồng hàm được hỗ trợ đầy đủ trong... Python 3.
- Có sự nhầm lẫn khá lớn giữa phương thức và hàm. Phương thức trong Python Các thuộc tính được liên kết với các thể hiện đối tượng, trong khi các hàm thì không. Khi Python gọi một phương thức, nó liên kết tham số đầu tiên của lệnh gọi đó với tham chiếu đối tượng thích hợp. Nói một cách đơn giản, một chức năng độc lập trong Python là một “hàm”, trong khi hàm là thuộc tính của một lớp hoặc một thể hiện là một “phương thức”.
Đây là đầy đủ Python 3 mã
#define a function
def func1():
print ("I am learning Python function")
print ("still in func1")
func1()
def square(x):
return x*x
print(square(4))
def multiply(x,y=0):
print("value of x=",x)
print("value of y=",y)
return x*y
print(multiply(y=2,x=4))
Đây là đầy đủ Python 2 mã
#define a function
def func1():
print " I am learning Python function"
print " still in func1"
func1()
def square(x):
return x*x
print square(4)
def multiply(x,y=0):
print"value of x=",x
print"value of y=",y
return x*y
print multiply(y=2,x=4)














