Cách gọi một hàm trong Python (Thí dụ)
Chức năng trong là gì Python?
A Chức năng trong Python là một đoạn mã chạy khi được tham chiếu. Nó được sử dụng để sử dụng mã ở nhiều nơi trong một chương trình. Nó còn được gọi là phương pháp hoặc thủ tục. Python cung cấp nhiều hàm sẵn có như print(), input(), biên dịch(), exec(), v.v. nhưng nó cũng cho phép bạn tự do tạo các hàm của riêng mình.
Cách định nghĩa và gọi hàm trong Python
Chức năng trong Python được định nghĩa bởi “chắc chắn” câu lệnh 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. Đầu ra của hàm sẽ là “Tôi đang học Python chức năng".
Các chức năng in func1() gọi def func1() của chúng tôi: và in lệnh ” tôi đang học Python chức năng Không có."
Có tập hợp các quy tắc trong Python để xác định một hàm.
- Mọi đối số hoặc tham số đầu vào phải được đặt trong các 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 doc hoặc chuỗi tài liệu của hàm
- Mã trong mỗi hàm bắt đầu bằng dấu hai chấm (:) và phải được thụt lề (dấu cách)
- Câu lệnh return (biểu thức) thoát khỏi một hàm, tùy ý trả lại một giá trị cho người gọi. Câu lệnh return không có đối số cũng giống như 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 chức năng và các quy tắc này có thể áp dụng cho các thành phần khác của Python cũng như khai báo điều kiện, vòng lặp hoặc biến.
Python tuân theo một kiểu thụt lề cụ thể để xác định mã, vì Python Các hàm không có bất kỳ điểm bắt đầu hoặc kết thúc rõ ràng nào như dấu ngoặc nhọn để biểu thị điểm bắt đầu và điểm dừng của hàm, chúng phải dựa vào vết lõm này. Ở đây chúng ta lấy một ví dụ đơn giản với lệnh “print”. Khi chúng ta viết hàm “print” ngay bên dưới def func 1 (): Nó sẽ hiển thị “lỗi thụt lề: mong đợi một khối thụt lề".
Bây giờ, khi bạn thêm thụt lề (dấu cách) vào trước hàm “print”, nó sẽ in như mong đợi.
Ít nhất, một lần thụt lề là đủ để mã của bạn hoạt động thành công. Nhưng cách tốt nhất là bạn nên để lại khoảng 3-4 dấu thụt lề để gọi hàm của mình.
Điều cần thiết nữa là trong khi khai báo thụt lề, bạn phải duy trì mức thụt lề tương tự cho phần còn lại của mã của bạn. 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 là “vẫn ở func1” và khi nó không được khai báo ngay bên dưới câu lệnh in đầu tiên, nó sẽ hiển thị lỗi thụt lề "unindent không khớp với bất kỳ mức thụt lề nào khác."
Bây giờ, khi chúng ta áp dụng cùng một mức 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 kết quả như mong đợi.
Giá trị trả về của hàm như thế nào?
Trả lại lệnh trong Python chỉ định giá trị nào sẽ trả về cho người gọi hàm. Hãy cùng tìm 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 – chúng ta thấy khi hàm không “trả về”. Ví dụ: chúng ta muốn bình phương của 4 và nó sẽ đưa ra câu trả lời là “16” khi mã được thực thi. Nó mang lại điều gì khi chúng ta chỉ sử dụng mã “print x*x”, nhưng khi bạn gọi hàm “print Square” thì nó lại đưa ra “None” làm đầu ra. Điều này là do khi bạn gọi hàm, việc đệ quy không xảy ra và rơi ra khỏi phần cuối của hàm. Python trả về “Không” nếu không thực hiện được ở 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õ điều này, chúng tôi thay thế lệnh in bằng lệnh gán. Hãy kiểm tra đầu ra.
Khi bạn chạy lệnh “in hình vuông (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ó trả về “Không”.
Bước 3) Sử dụng chức năng 'return' và thực thi mã
Bây giờ, ở đây chúng ta sẽ xem cách lấy kết quả đầu ra bằng lệnh “return”. Khi bạn sử dụng hàm “return” và thực thi mã, nó sẽ cho kết quả là “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 xử lý một đối tượng. Khi bạn chạy lệnh “in hình vuông”, nó sẽ trả về giá trị của đối tượng. Vì chúng tôi chưa chuyển bất kỳ đối số nào nên chúng tôi không có bất kỳ hàm cụ thể nào để chạy ở đây, nó trả về giá trị mặc định (0x021B2D30) là vị trí của đối tượng. Trong thực tế Python chương trình, bạn có thể sẽ không bao giờ cần phải làm điều này.
Đối số trong hàm
Đối số là một giá trị được truyền cho hàm khi nó được gọi.
Nói cách khác, ở phía gọi, nó là một đối số và ở phía hàm, nó là một tham số.
Hãy xem thế nào Python Args hoạt động –
Bước 1) Các đối số được khai báo trong định nghĩa hàm. Trong khi gọi hàm, bạn có thể truyền các giá trị cho đối số đó như hiển thị bên dưới
Bước 2) Để khai báo giá trị mặc định của một đối số, hãy gán cho nó một giá trị tại đị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 chúng ta chỉ cung cấp một đối số trong khi gọi hàm nhân, Python gán giá trị được cung cấp cho x trong khi vẫn giữ giá trị y=0. Do đó nhân 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ự các đối số có thể được truyền vào Python. Ở đây chúng ta đã đảo ngược thứ tự của 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ột mảng. Ở ví dụ này, chúng ta gọi bội số args (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ố dưới dạng số (1,2,3,4,5) khi gọi hàm (*args); nó in ra kết quả là (1,2,3,4,5)
Lời khuyên:
- In Python 2.7. quá tải chức năng không được hỗ trợ trong Python. Nạp chồng hàm là khả năng tạo nhiều phương thức có cùng tên với cách triển khai khác nhau. Quá tải chức năng được hỗ trợ đầy đủ trong Python 3
- Có một sự nhầm lẫn khá lớn giữa các phương thức và chức năng. Phương pháp trong Python được liên kết với các thể hiện đối tượng trong khi chức năng 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)
Tổng kết
Chức năng trong Python là một đoạn mã có thể tái sử dụng được sử dụng để thực hiện một hành động có liên quan. Trong bài viết này, chúng ta sẽ thấy
- Hàm được xác định bởi def tuyên bố
- Khối mã trong mỗi hàm bắt đầu bằng dấu hai chấm (:) và phải được thụt lề (dấu cách)
- Bất kỳ đối số hoặc tham số đầu vào nào cũng phải được đặt trong các dấu ngoặc đơn này, v.v.
- Phải để lại ít nhất một vết thụt lề trước mã sau khi khai báo hàm
- Kiểu thụt lề giống nhau phải được duy trì trong suốt mã trong hàm def
- Đối với các phương pháp hay nhất, ba hoặc bốn thụt lề được coi là tốt nhất trước câu lệnh
- Bạn có thể sử dụng lệnh “return” để trả về giá trị cho lệnh gọi hàm.
- Python sẽ in một giá trị ngẫu nhiên như (0x021B2D30) khi đối số không được cung cấp cho hàm gọi. Ví dụ “chức năng in”.
- Về phía gọi, nó là một đối số và về phía hàm, nó là một tham số
- Giá trị mặc định trong đối số – Khi chúng ta chỉ cung cấp một đối số trong khi gọi hàm nhân hoặc bất kỳ hàm nào khác, Python gán đối số khác theo mặc định
- Python cho phép bạn đảo ngược thứ tự của đối số cũng như