Hướng dẫn call a function after previous function is complete python - gọi một chức năng sau khi chức năng trước đó hoàn thành python

Tôi có hai chức năng "A" và "B". "B" được gọi khi người dùng tải lên tệp. "B" đổi tên tệp và trả về tên tệp mới. Sau đó, tập tin được cho là được chỉnh sửa. Như thế này:

def a[]:
    edits file
def b[]:
    renames file  
    return file

Vì vậy, nếu B xảy ra và kết thúc, B được cho là sẽ xảy ra. Khi "B" trả về tệp, chức năng đã kết thúc và không có gì xảy ra sau đó. Chính xác thì tại thời điểm này tôi muốn "A" xảy ra, làm thế nào điều này có thể? Ngay bây giờ tôi gọi "A" với bộ đếm thời gian

t=Timer[1.0,a]
t.start[] 

Nhưng đó không phải là một giải pháp tốt. Tôi đã thử với các biến toàn cầu nhưng nó không hoạt động. Tôi cũng đã thử return file, a[] vì tôi nghĩ rằng sau đó A có thể sẽ bắt đầu. Và cuối cùng gói nó:

def b[]:
    global filename
    renames filename
    def a[]:
         edits filename  
    return filename

Có một cái gì đó giống như if b[]: a[]?

Có ai đề xuất không?

Hỏi ngày 3 tháng 8 năm 2015 lúc 23:13Aug 3, 2015 at 23:13

Klaus Ruprechtklaus Ruprechtklaus ruprecht

1171 Huy hiệu vàng2 Huy hiệu bạc1 gold badge2 silver badges10 bronze badges

6

Chỉ cần làm điều này:

def a[]:
    #your code

def b[]:
    #your code
    a[]

Example:

def first[]:
    print 'first'

def second[]:
    print 'second'
    first[]

>>> second[]
second
first

Đã trả lời ngày 3 tháng 8 năm 2015 lúc 23:19Aug 3, 2015 at 23:19

cho phépletsc

2.4843 huy hiệu vàng34 Huy hiệu bạc53 Huy hiệu đồng3 gold badges34 silver badges53 bronze badges

2

Có vẻ như bạn đang tìm kiếm các nhà trang trí, được thêm vào bởi PEP 0318. Một số ví dụ [phức tạp] nằm trong thư viện trang trí.

def a[]:
    edits file

def call_a_after[f]:
  def decorate[*args, **kwargs]:
    ret = f[*args, **kwargs]
    a[]
    return ret
  return decorate

@call_a_after
def b[]:
    renames file  
    return file

Điều này kết thúc

t=Timer[1.0,a]
t.start[] 
0 trong
t=Timer[1.0,a]
t.start[] 
1 [các nhà trang trí là đường cú pháp cho
t=Timer[1.0,a]
t.start[] 
2] cho phép bạn phân phối lại, hoặc trang trí, những gì
t=Timer[1.0,a]
t.start[] 
0 làm.

Đã trả lời ngày 3 tháng 8 năm 2015 lúc 23:39Aug 3, 2015 at 23:39

dimo414dimo414dimo414

45,8K18 Huy hiệu vàng145 Huy hiệu bạc235 Huy hiệu Đồng18 gold badges145 silver badges235 bronze badges

2

Tôi đã tìm thấy một giải pháp cho một câu hỏi tương tự ở đây.

Sử dụng điều đó, tôi nghĩ bạn có thể muốn một cái gì đó như thế này:

def run_before[lastfunc, *args1, **kwargs1]:
    def run[func]:
        def wrapped_func[*args, **kwargs]:
            try:
                result = func[*args, **kwargs]
            except:
                result = None
            finally:
                lastfunc[*args1, **kwargs1]
                return result
        return wrapped_func
    return run

def a[]:
    edits file

@run_before[a]
def b[]:
    renames file  
    return file

b[]

Tôi nghĩ rằng câu hỏi này bị nhầm lẫn hơn nữa bởi thực tế là bạn muốn b chạy trước a. Đối với một luồng logic hơn, tôi sẽ đề nghị chuyển đổi những thứ này xung quanh nếu có thể.before a. For a more logical flow, I would suggest switching these around if possible.

Tất cả tín dụng dành cho AGF cho giải pháp ban đầu.

Đã trả lời ngày 2 tháng 4 năm 2020 lúc 13:25Apr 2, 2020 at 13:25

Chạy chức năng thứ hai chỉ sau khi hàm đầu tiên được hoàn thành hoàn toàn với các ví dụ mã

Xin chào tất cả mọi người, trong bài đăng này, chúng tôi sẽ điều tra cách giải quyết chức năng thứ hai chỉ sau khi hàm đầu tiên hoàn thành câu đố lập trình bằng cách sử dụng ngôn ngữ lập trình.

function run2functions[] {
    firstFunc[secondFunc];
}

function firstFunc[cb] {
    setTimeout[[] => {
    },1000];
    cb[];
    console.log["first one"];
}

function secondFunc[] {
    setTimeout[[] => {
        console.log["second one"];
    },1000];
}
 
run2functions[];

Chúng tôi đã có thể tìm ra cách giải quyết hàm thứ hai chỉ sau khi hàm đầu tiên hoàn thành mã bằng cách xem xét một loạt các mẫu khác.

Làm cách nào để thực hiện một hàm này đến chức năng khác?

Nói một cách đơn giản: một cuộc gọi lại là một hàm sẽ được thực thi sau khi một chức năng khác đã thực hiện xong - do đó tên ‘gọi lại. Đặt phức tạp hơn: Trong JavaScript, các hàm là đối tượng. Bởi vì điều này, các chức năng có thể coi các chức năng là đối số và có thể được trả về bởi các chức năng khác.12-Jun-2017

Làm thế nào để bạn gọi một hàm sau khi một hàm khác kết thúc trong JavaScript?

Sử dụng async/chờ đợi để chờ một chức năng kết thúc trước khi tiếp tục thực hiện. Một cách khác để chờ đợi một chức năng thực thi trước khi tiếp tục thực hiện trong môi trường không đồng bộ trong JavaScript là sử dụng Async/Wait .20-NOV-2020

Làm thế nào để bạn thực hiện một chức năng nhiều lần trong các khoảng thời gian cụ thể?

Hai phương pháp chính để sử dụng với JavaScript là:

  • SetTimeout [hàm, mili giây] thực hiện một hàm, sau khi chờ một số mili giây được chỉ định.
  • setInterval [hàm, mili giây] giống như setTimeout [], nhưng lặp lại việc thực thi hàm liên tục.

Làm thế nào tôi nên gọi 3 chức năng để thực hiện chúng từng chức năng?

Nếu chúng ta có ba hàm đồng bộ, chúng ta có thể thực hiện chúng không đồng bộ bằng cách sử dụng chức năng SetTimeout. setTimeout [dosomoth, 10]; setTimeout [dosomothingelse, 10]; setTimeout [dosomet Bethingusefulthistime, 10]; Tuy nhiên, đây là một chút xấu xí và vi phạm nguyên tắc khô [Wikipedia] .03-Mar-2011

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

Chức năng gọi điện trong Python Sau khi một hàm được tạo trong Python, chúng ta có thể gọi nó bằng cách viết function_name [] chính hoặc một hàm/ chức năng lồng nhau khác. Sau đây là cú pháp để gọi một hàm. Cú pháp: DEF function_name []:

Tại sao nó được gọi là chức năng gọi lại?

Một cuộc gọi lại là một hàm sẽ được thực thi sau khi một chức năng khác đã thực hiện xong-do đó tên ‘Gọi lại.

Làm thế nào để bạn chờ đợi một chức năng hoàn thành?

-Lời hứa dựa trên chức năng Async: Sử dụng chức năng Await Await cho các lời hứa dựa trên chức năng ASYNC, bạn có thể thêm chức năng chờ đợi để dừng chức năng trong JavaScript, cho đến khi lời hứa được thực hiện và sau đó trả về giá trị kết quả.17- Tháng 11-2021

Làm thế nào để bạn tạo một chức năng chờ đợi trong JavaScript?

Để làm cho mã JavaScript của bạn chờ đợi, hãy sử dụng kết hợp các lời hứa, async/chờ đợi và setTimeout [], thông qua đó bạn có thể viết hàm chờ sẽ hoạt động như bạn mong đợi.10-JUN-2022

JavaScript có chờ chức năng kết thúc không?

Thực thi mã JavaScript không đồng bộ theo mặc định, điều đó có nghĩa là JavaScript đã giành được chức năng chờ đợi một chức năng hoàn thành trước khi thực thi mã bên dưới nó.05-JUL-2021

Làm thế nào để bạn gọi một hàm liên tục sau một khoảng thời gian cố định trong Python?

Gọi một chức năng sau một số khoảng trong Python

  • Một bộ đếm thời gian áp dụng độ trễ mong muốn.
  • Python có các đối tượng hẹn giờ cung cấp cơ sở để đưa ra đối số.
  • Bộ hẹn giờ về cơ bản là một lớp con của lớp luồng.
  • hẹn giờ. start [] bắt đầu hẹn giờ và lên lịch nhiệm vụ.

Bài Viết Liên Quan

Chủ Đề