Hướng dẫn calling a function inside the same function python - gọi một hàm bên trong cùng một hàm python

Mã tôi đã có là dành cho một bot nhận biểu thức toán học và tính toán nó. Ngay bây giờ tôi có nó làm nhân, chia, trừ và thêm. Mặc dù vậy, vấn đề là tôi muốn xây dựng sự hỗ trợ cho dấu ngoặc đơn và dấu ngoặc đơn bên trong dấu ngoặc đơn. Để điều đó xảy ra, tôi cần chạy mã tôi đã viết cho các biểu thức mà không có dấu ngoặc đơn cho biểu thức bên trong dấu ngoặc đơn đầu tiên. Tôi sẽ kiểm tra "(" và nối biểu thức bên trong nó vào danh sách cho đến khi nó đạt đến ")" trừ khi nó đạt đến một "(" khác trước tiên trong trường hợp tôi sẽ tạo một danh sách bên trong danh sách. Tôi sẽ trừ, nhân và chia và sau đó các số còn lại tôi chỉ cần thêm vào nhau.

Vì vậy, có thể gọi một định nghĩa/hàm từ bên trong chính nó?

Hướng dẫn calling a function inside the same function python - gọi một hàm bên trong cùng một hàm python

Mackm

2.7975 huy hiệu vàng32 Huy hiệu bạc43 Huy hiệu đồng5 gold badges32 silver badges43 bronze badges

Đã hỏi ngày 16 tháng 3 năm 2015 lúc 9:13Mar 16, 2015 at 9:13

Vâng, đây là một kỹ thuật lập trình cơ bản gọi là đệ quy, và nó thường được sử dụng trong chính xác các loại kịch bản phân tích cú pháp mà bạn mô tả.

Chỉ cần chắc chắn rằng bạn có một trường hợp cơ sở, để đệ quy kết thúc khi bạn đến lớp dưới cùng và cuối cùng bạn không tự gọi mình là vô hạn.

(Cũng lưu ý trứng Phục sinh khi bạn đệ quy Google: "Ý bạn là đệ quy?")

Đã trả lời ngày 16 tháng 3 năm 2015 lúc 9:14Mar 16, 2015 at 9:14

Daniel Rosemandaniel RosemanDaniel Roseman

575K61 Huy hiệu vàng840 Huy hiệu bạc852 Huy hiệu Đồng61 gold badges840 silver badges852 bronze badges

1

Vâng, như @Daniel Roseman đã nói, đây là một kỹ thuật lập trình cơ bản gọi là đệ quy.

Nên sử dụng đệ quy thay vì lặp lại khi bạn muốn tạo ra một giải pháp sạch hơn so với phiên bản lặp. Tuy nhiên, đệ quy thường đắt hơn so với lần lặp vì nó yêu cầu cuộn dây hoặc đẩy các khung ngăn xếp mới lên ngăn xếp cuộc gọi mỗi khi chức năng đệ quy được gọi - các hoạt động này chiếm thời gian và xếp chồng không gian, có thể dẫn đến một lỗi gọi là Stack Overlow Nếu khung ngăn xếp tiêu thụ tất cả bộ nhớ được phân bổ cho ngăn xếp cuộc gọi.

Đây là một ví dụ về nó trong Python

def recur_factorial(n):
   """Function to return the factorial of a number using recursion""" 
   if n == 1:
      return n
   else:
      return n*recur_factorial(n-1) 

Để biết thêm chi tiết, hãy truy cập ý chính của github đã được sử dụng cho câu trả lời này

Đã trả lời ngày 16 tháng 3 năm 2015 lúc 9:21Mar 16, 2015 at 9:21

Hướng dẫn calling a function inside the same function python - gọi một hàm bên trong cùng một hàm python

Jameel Grandjameel GrandJameel Grand

2.20615 huy hiệu bạc31 huy hiệu đồng15 silver badges31 bronze badges

1

Vâng, có thể trong "đệ quy Python" và mô tả tốt nhất là: "Một ví dụ về thế giới vật lý sẽ là đặt hai gương song song đối mặt với nhau. Bất kỳ đối tượng nào ở giữa chúng sẽ được phản ánh một cách đệ quy"

Đã trả lời ngày 17 tháng 12 năm 2021 lúc 8:08Dec 17, 2021 at 8:08

Hướng dẫn calling a function inside the same function python - gọi một hàm bên trong cùng một hàm python

def4

Sum of the Square of List of Numbers: 385 
24

def4

Sum of the Square of List of Numbers: 385 
53

Function2 :  Hello
Function1 :  World
6def9    8

  • Sum of the Square of List of Numbers: 385 
    69
    Sum of the Square of List of Numbers: 385 
    8
    Sum of the Square of List of Numbers: 385 
    71
  • Sum of the Square of List of Numbers: 385 
    72
    Sum of the Square of List of Numbers: 385 
    8
    Sum of the Square of List of Numbers: 385 
    74
  • def4

    Sum of the Square of List of Numbers: 385 
    24

    def4

    Sum of the Square of List of Numbers: 385 
    53

    Function2 :  Hello
    Function1 :  World
    6def9    8

    Sum of the Square of List of Numbers: 385 
    69
    Sum of the Square of List of Numbers: 385 
    8
    Sum of the Square of List of Numbers: 385 
    71
    Functions in Python
    In Python, any written function can be called by another function. Note that this could be the most elegant way of breaking a problem into chunks of small problems. In this article, we will learn how can we call a defined function from another function with help of multiple examples. 

    Sum of the Square of List of Numbers: 385 
    72
    Sum of the Square of List of Numbers: 385 
    8
    Sum of the Square of List of Numbers: 385 
    74
     
    The Function which calls another Function is called Calling Function and function which is called by another Function is call Called Function.

    Tôi có thể gọi một hàm bên trong cùng một chức năng trong Python không?
    A stack data structure is used during the execution of the function calls. Whenever a function is invoked then the calling function is pushed into the stack and called function is executed. When the called function completes its execution and returns then the calling function is popped from the stack and executed. Calling Function execution will be completed only when called Function is execution completes.

    Python cũng chấp nhận đệ quy chức năng, có nghĩa là một hàm được xác định có thể tự gọi. Recursion là một khái niệm toán học và lập trình phổ biến. Nó có nghĩa là một chức năng tự gọi.

    Hướng dẫn calling a function inside the same function python - gọi một hàm bên trong cùng một hàm python

    Làm thế nào để bạn gọi một hàm bên trong cùng một chức năng?

    Python3

    Gọi một chức năng bên trong chính nó được gọi là đệ quy.

    Chúng ta có thể gọi một chức năng bên trong chức năng không?

    Một hàm tự gọi được gọi là hàm đệ quy. Trong một số cách, đệ quy tương tự như một vòng lặp. Cả hai thực thi cùng một mã nhiều lần và cả hai đều yêu cầu một điều kiện (để tránh một vòng lặp vô hạn, hoặc đúng hơn là đệ quy vô hạn trong trường hợp này).

        

    Sum of the Square of List of Numbers: 385 
    7
    Sum of the Square of List of Numbers: 385 
    8
    Sum of the Square of List of Numbers: 385 
    9

        ____21

    Function2 :  Hello
    Function1 :  World
    22____23
    Function2 :  Hello
    Function1 :  World
    4
    Function2 :  Hello
    Function1 :  World
    5

    Function2 :  Hello
    Function1 :  World
    6
    Function2 :  Hello
    Function1 :  World
    7
    Sum of the Square of List of Numbers: 385 
    8
    Function2 :  Hello
    Function1 :  World
    9

    Function2 :  Hello
    Function1 :  World
    6
    Sum of the Square of List of Numbers: 385 
    7
    Function2 :  Hello
    Function1 :  World
    2
    Sum of the Square of List of Numbers: 385 
    8
    Function2 :  Hello
    Function1 :  World
    4

        ____10

    Sum of the Square of List of Numbers: 385 
    7

    Các

    "("1

    Sum of the Square of List of Numbers: 385 
    8 "("3"("4

    "("5

    Sum of the Square of List of Numbers: 385 
    8 "("7

    "("8"("9

    Sum of the Square of List of Numbers: 385 
    7 def1def2 def3

    Đầu ra: & nbsp; 

    Sum of the Square of List of Numbers: 385 

    Gọi chức năng từ một hàm khác trong cùng một lớp trong ví dụ dưới đây, chức năng Phương thức lớp1 gọi Phương thức Phương thức2 từ lớp.
    In the below example, the class method Function1 calls method Function2 from the class.

    Python3

    def4 def5

        def def8def9______

    Function2 :  Hello
    Function1 :  World
    6def9Square(X):3
    Sum of the Square of List of Numbers: 385 
    8Square(X):5

    Function2 :  Hello
    Function1 :  World
    6def9Square(X):8
    Sum of the Square of List of Numbers: 385 
    8    0

        def     3def9Square(X):0

    Function2 :  Hello
    Function1 :  World
    6def9    8

    Function2 :  Hello
    Function1 :  World
    6"("8
    Sum of the Square of List of Numbers: 385 
    01def9
    Sum of the Square of List of Numbers: 385 
    03

    Function2 :  Hello
    Function1 :  World
    6
    Sum of the Square of List of Numbers: 385 
    0

        def

    Sum of the Square of List of Numbers: 385 
    08def9Square(X):0

    Function2 :  Hello
    Function1 :  World
    6"("8
    Sum of the Square of List of Numbers: 385 
    13def9
    Sum of the Square of List of Numbers: 385 
    15

    Function2 :  Hello
    Function1 :  World
    6
    Sum of the Square of List of Numbers: 385 
    0

    Sum of the Square of List of Numbers: 385 
    18
    Sum of the Square of List of Numbers: 385 
    8
    Sum of the Square of List of Numbers: 385 
    20

    Sum of the Square of List of Numbers: 385 
    18
    Sum of the Square of List of Numbers: 385 
    22

    Đầu ra: & nbsp;

    Function2 :  Hello
    Function1 :  World

    Gọi chức năng từ một hàm khác trong cùng một lớp trong ví dụ dưới đây, chức năng Phương thức lớp1 gọi Phương thức Phương thức2 từ lớp.parent class Function from Child class Function –
    Consider the below example the child class method invokes the parent class method. The child class inherits the attributes from the parent class.

    Python3

    def4 def5

        def def8def9______

    Function2 :  Hello
    Function1 :  World
    6def9Square(X):3
    Sum of the Square of List of Numbers: 385 
    8Square(X):5

    Function2 :  Hello
    Function1 :  World
    6def9Square(X):8
    Sum of the Square of List of Numbers: 385 
    8    0

        def

    Sum of the Square of List of Numbers: 385 
    08def9Square(X):0

    Function2 :  Hello
    Function1 :  World
    6"("8
    Sum of the Square of List of Numbers: 385 
    13def9
    Sum of the Square of List of Numbers: 385 
    15

    Function2 :  Hello
    Function1 :  World
    6
    Sum of the Square of List of Numbers: 385 
    0

    Sum of the Square of List of Numbers: 385 
    18
    Sum of the Square of List of Numbers: 385 
    8
    Sum of the Square of List of Numbers: 385 
    20

        def     3def9Square(X):0

    Function2 :  Hello
    Function1 :  World
    6"("8
    Sum of the Square of List of Numbers: 385 
    01def9
    Sum of the Square of List of Numbers: 385 
    03

    Function2 :  Hello
    Function1 :  World
    6"("8
    Sum of the Square of List of Numbers: 385 
    01def9
    Sum of the Square of List of Numbers: 385 
    03

    Function2 :  Hello
    Function1 :  World
    6
    Sum of the Square of List of Numbers: 385 
    0  

        def

    Sum of the Square of List of Numbers: 385 
    08def9Square(X):0

    Sum of the Square of List of Numbers: 385 
    18
    Sum of the Square of List of Numbers: 385 
    8
    Sum of the Square of List of Numbers: 385 
    20

    Sum of the Square of List of Numbers: 385 
    75

    Đầu ra: & nbsp; 

    Function2 :  Hello
    Function1 :  World

    Tôi có thể gọi một hàm bên trong cùng một chức năng trong Python không?

    Python cũng chấp nhận đệ quy chức năng, có nghĩa là một hàm được xác định có thể tự gọi.Recursion là một khái niệm toán học và lập trình phổ biến.Nó có nghĩa là một chức năng tự gọi.. Recursion is a common mathematical and programming concept. It means that a function calls itself.

    Làm thế nào để bạn gọi một hàm bên trong cùng một chức năng?

    Gọi một chức năng bên trong chính nó được gọi là đệ quy.recursion.

    Chúng ta có thể gọi một chức năng bên trong chức năng không?

    Một hàm tự gọi được gọi là hàm đệ quy.Trong một số cách, đệ quy tương tự như một vòng lặp.Cả hai thực thi cùng một mã nhiều lần và cả hai đều yêu cầu một điều kiện (để tránh một vòng lặp vô hạn, hoặc đúng hơn là đệ quy vô hạn trong trường hợp này).. In some ways, recursion is analogous to a loop. Both execute the same code multiple times, and both require a condition (to avoid an infinite loop, or rather, infinite recursion in this case).

    Làm thế nào để bạn gọi một chức năng lồng nhau trong Python?

    Một hàm được xác định bên trong một hàm khác được gọi là hàm lồng nhau.Các hàm lồng nhau có thể truy cập các biến của phạm vi kèm theo.Trong Python, các biến không cục bộ này chỉ được đọc theo mặc định và chúng ta phải khai báo chúng một cách rõ ràng là không cục bộ (sử dụng từ khóa không thuộc địa) để sửa đổi chúng.. Nested functions can access variables of the enclosing scope. In Python, these non-local variables are read-only by default and we must declare them explicitly as non-local (using nonlocal keyword) in order to modify them.