Tôi có thể gọi một chức năng trong python khác không?

Như chúng ta đã biết, hàm là khối câu lệnh dùng để thực hiện một số tác vụ cụ thể trong lập trình. Nó cũng giúp chia nhóm mã lớn thành các phần hoặc mô-đun nhỏ hơn. Các chức năng có thể được gọi ở bất cứ đâu và số lần trong một chương trình. Nó cho phép chúng tôi sử dụng lại mã bằng cách gọi hàm hoặc khối cụ thể trong một chương trình. Do đó, nó tránh được sự lặp lại của cùng một mã. Chúng ta có thể định nghĩa các hàm bên trong lớp, mô-đun, hàm lồng nhau, v.v.

Các tính năng của chức năng

Sau đây là các tính năng của Hàm Python

  1. Nó được sử dụng để tránh lặp lại mã
  2. Sử dụng chức năng, chúng ta có thể chia một nhóm mã thành các mô-đun nhỏ hơn
  3. Nó giúp ẩn mã và tạo sự rõ ràng để hiểu các mô-đun
  4. Nó cho phép mã có thể tái sử dụng, do đó tiết kiệm bộ nhớ
  5. Các câu lệnh được viết bên trong một hàm chỉ có thể được thực thi với tên hàm
  6. Hàm Python bắt đầu bằng def và sau đó là dấu hai chấm (. ) theo sau là tên hàm

Quy tắc xác định hàm

  1. Từ khóa def được sử dụng trong hàm Python để khai báo và định nghĩa một hàm
  2. Tên hàm phải bắt đầu bằng các định danh sau, chẳng hạn như. A-Z, a-z và dấu gạch dưới (_)
  3. Mọi chức năng phải tuân theo dấu hai chấm (. ) và sau đó nhập lệnh để viết chương trình
  4. Trong hàm Python, từ dành riêng không thể được sử dụng làm tên hàm hoặc mã định danh
  5. Trong Python, tham số hàm có thể trống hoặc bội số

Tạo một hàm trong Python

Để tạo hàm chúng ta cần sử dụng từ khóa def để khai báo hoặc viết hàm trong Python. Đây là cú pháp để tạo một hàm

cú pháp

Hãy tạo một chương trình hàm trong Python

Niềm vui của tôi. py

đầu ra

Gọi hàm trong Python

Khi một hàm được tạo trong Python, chúng ta có thể gọi nó bằng cách viết chính hàm_tên() hoặc một hàm/hàm lồng nhau khác. Sau đây là cú pháp gọi một hàm

cú pháp

Xem xét ví dụ sau để in Thông báo chào mừng bằng một hàm trong Python

Cuộc gọiVui vẻ. py

đầu ra

Hello World
 Welcome to the JavaTpoint

Trong ví dụ trên, chúng ta gọi hàm MyFun() để in các câu lệnh

Gọi hàm lồng nhau trong Python

Khi chúng ta xây dựng một hàm bên trong một hàm khác, nó được gọi là hàm lồng nhau. Chúng ta có thể tạo các hàm lồng nhau bằng từ khóa def. Sau khi tạo hàm, chúng ta phải gọi hàm bên ngoài và hàm bên trong để thực thi câu lệnh. Hãy tạo một chương trình để hiểu khái niệm về các hàm lồng nhau và cách chúng ta có thể gọi các hàm này

Tổ. py

đầu ra

Hello, it is the outer function
Hello, it is the inner function

Như chúng ta có thể thấy trong ví dụ trên, hàm InFun() được định nghĩa bên trong hàm OutFun(). Để gọi hàm InFun(), đầu tiên chúng ta gọi hàm OutFun() trong chương trình. Sau đó, hàm OutFun() sẽ bắt đầu thực thi và sau đó gọi InFun() như đầu ra ở trên

Ghi chú. Để gọi một hàm bên trong, trước tiên chúng ta phải gọi hàm bên ngoài. Nếu chức năng bên ngoài không được gọi, chức năng bên trong sẽ không được thực thi

Chương trình in phép nhân hai số bằng hàm lồng nhau trong Python

Nest_arg. py

đầu ra

Display the value of outer variable 6
Display the sum of inner function 8

Chức năng như các đối tượng hạng nhất

Trong Python, các chức năng như Đối tượng hạng nhất. Bởi vì nó đối xử giống như đối tượng và nó có cùng thuộc tính và phương thức như đối tượng. Một hàm có thể được gán cho một biến, chuyển chúng dưới dạng đối số, lưu trữ chúng trong cấu trúc dữ liệu và trả về giá trị từ các hàm khác. Nó có thể được thao tác, chẳng hạn như các đối tượng khác trong Python. Hơn nữa, tất cả dữ liệu trong chương trình Python được biểu diễn trong các đối tượng hoặc quan hệ. Do đó, nó còn được gọi là công dân hạng nhất của hàm Python

Để gọi một hàm, chúng ta phải định nghĩa hàm đó bằng từ khóa def, vì vậy chúng ta đã sử dụng từ khóa đó để định nghĩa hàm test(). Sau đó, bên trong hàm test(), chúng tôi đã sử dụng hàm print() để in một thông báo, thông báo này sẽ được in khi thực hiện hàm này

Trong các lời gọi hàm, chúng ta có hai thuật ngữ; . Ở đây, Calling Function là hàm gọi một hàm khác trong khi Called Function là hàm đang được gọi

Bây giờ, bạn có thể có một câu hỏi về cách thực thi chức năng hoạt động. Làm cách nào để quyết định vị trí trả về, đặc biệt là trong lệnh gọi hàm lồng nhau, mà chúng ta sẽ tìm hiểu trong phần tiếp theo? . Làm sao?

Call function in Python

Trong sơ đồ trên, chúng ta có hàm test(); . Sau đó, nó thực thi hàm test() và trả về

Sau đó, hàm được bật ra khỏi ngăn xếp và quay trở lại điểm mà nó rời khỏi việc thực thi chương trình và tiếp tục

Bây giờ, bạn có thể tự hỏi tại sao phải vật lộn với tất cả những điều này và viết các hàm;

  • Nó tránh lặp lại mã, khuyến khích khả năng sử dụng lại mã và do đó tiết kiệm thời gian, tiền bạc và bộ nhớ
  • Nó hỗ trợ ẩn mã và cho phép chúng tôi hiểu các mô-đun một cách hiệu quả
  • Các chức năng giúp chúng tôi chia nhỏ các vấn đề lớn thành các mô-đun nhỏ hơn
  • Các chức năng chỉ có thể được xác định bằng cách sử dụng từ khóa def và dấu hai chấm theo sau tên chức năng
  • Các câu lệnh của một hàm chỉ có thể được thực hiện với tên hàm

Bạn có thể đọc phần này để biết những ký tự nào được phép khi viết tên hàm trong Python. Bây giờ, giả sử chúng ta có một tình huống phải gọi một hàm từ một hàm khác. Khái niệm này sẽ giống nhau và cấu trúc dữ liệu ngăn xếp sẽ được sử dụng. Hãy xem làm thế nào?

Gọi hàm từ một hàm khác trong Python

Để gọi hàm từ một hàm khác trong Python

  • Viết một hàm def2, in một tin nhắn và trả về
  • Viết một hàm def3 khác để in một thông báo, gọi def2 mà chúng ta đã tạo ở bước trước và trả về
  • Bây giờ, hãy gọi hàm def3

Gọi một chức năng từ một chức năng khác

1

2

3

4

5

6

7

8

9

10

11

12

13

 

def function_A().

  in("Tôi là chức năng A. ")

  trả lại

 

def function_B().

  in("Tôi là chức năng B. ")

  hàm_A()

  trả lại

 

function_B()

print("Tôi hiện đang ở bên ngoài chức năng. ")

 

ĐẦU RA

1

2

3

4

5

 

Tôi chức năng B.

Tôi chức năng A.

Tôi am bây giờ ở ngoài the functions.

 

Ở đây, chúng tôi đã viết hai chức năng, def2 và def3, cả hai đều có một câu lệnh in để in một tin nhắn, nhưng chúng tôi cũng gọi def2 từ def3

Không có gì xảy ra cho đến khi chúng tôi đạt được tuyên bố, nơi được gọi là test()0 là def3. Ngay sau khi chúng tôi gọi def3, nó đã được đẩy vào ngăn xếp và quá trình thực thi của test()0 bắt đầu. Nó in câu lệnh test()4 và gọi test()5 là def2

Bây giờ, test()5 cũng được đẩy vào ngăn xếp và quá trình thực thi của test()5 bắt đầu; . Khi chúng tôi hoàn thành với test()5, nó sẽ được lấy ra khỏi ngăn xếp và trả về nơi chúng tôi đã để lại test()0

Như chúng ta có thể thấy trong đoạn mã trên, chúng ta đã có một câu lệnh test()2 sau khi gọi test()5, vì vậy test()0 cũng xuất hiện từ ngăn xếp và quay trở lại nơi chúng ta rời chương trình sau khi gọi test()0

Vì vậy, bây giờ, chúng tôi chỉ có một câu lệnh in được thực thi, được in test()6 trên bàn điều khiển. Tại thời điểm này, chúng tôi đã có ba câu lệnh được in trên bàn điều khiển và ngăn xếp cũng trống

Hãy hình dung việc thực hiện chương trình trên trong sơ đồ sau

Call function from another function in Python

Chúng ta cũng có thể gọi một hàm từ một hàm khác trong cùng lớp và khác lớp. Hãy cùng tìm hiểu ngay dưới đây

đọc thêm

Hàm gọi lại trong Python

Đọc thêm →

Nhận biến từ hàm trong Python

Đọc thêm →

Gọi một hàm từ một hàm khác trong các lớp giống nhau/khác nhau

Để gọi một hàm từ một hàm khác trong một lớp

  • Tạo một lớp học;
  • Bên trong lớp test()7, định nghĩa phương thức test()9 bằng cách truyền tham số print()0, đây là tham số mặc định. Sử dụng tham số print()0 này để tạo hai thuộc tính cấp lớp và đặt giá trị của chúng
  • Tạo hai hàm, def2 và def3, trong đó cả hai đều lấy tham số print()0, là tham số mặc định, in một thông báo và gọi test()5 từ test()0
  • Ngoài lớp này, hãy khởi tạo hàm test()7, gọi hàm def3

Gọi một chức năng từ một chức năng khác

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

 

class test_class().

  def __init__(self):

        bản thân. String1 = "Tôi là chức năng A. "

        bản thân. String2 = "Tôi là chức năng B. "

  def function_A(self):

    in(bản thân. Chuỗi 1)

    trả lại

 

  def function_B(self):

    in(bản thân. Chuỗi2)

    bản thân. hàm_A()

    trả lại

 

test_class_object = test_class()

test_class_object. hàm_B()

 

ĐẦU RA

1

2

3

4

 

Tôi chức năng B.

Tôi chức năng A.

 

Chúng ta đã học cách một hàm được gọi từ một hàm khác trong phần trước;

Ở đây, chúng tôi đã tạo test()5 và test()0 trong lớp test()7 nơi cả hai hàm lấy tham số print()0 và in một thông báo nhưng được gọi là test()5 từ test()0

Phương thức mới là test()9, còn được gọi là hàm tạo và phương thức ma thuật. Chúng tôi đã sử dụng phương pháp này để tránh dư thừa mã. Phương thức này được gọi tự động bất cứ khi nào chúng ta khởi tạo test()7

Bây giờ, tham số print()0 là gì?

Chúng ta phải sử dụng tham số này vì Python chuyển một đối tượng làm đối số đầu tiên và tất cả các tham số khác sẽ ở bên cạnh nó. Do đó, chúng ta phải có một tham số print()0 ở vị trí đầu tiên trong định nghĩa của phương thức để gọi một phương thức

Chúng ta cũng có thể làm tương tự bằng cách tạo các lớp khác nhau. Hãy sử dụng tính kế thừa để hiểu cách chúng ta có thể gọi một hàm từ một hàm khác bằng cách sử dụng các lớp khác nhau. Lưu ý rằng bạn phải có đủ kiến ​​thức về thừa kế để hiểu mối quan hệ cha-con trong đoạn mã sau