簡體   English   中英

如何用類調用替換嵌套函數

[英]How to replace nested functions with class call

我需要將嵌套函數替換為類調用。 這是原始代碼。

import numpy as np
from variables_3 import vars

def kinetics(y,t,b1,b2):
    v = vars(*y)
    def dydt(v):
        return [
        (b1 * v.n) + (b2 * v.c1),
        (b1 * v.n) - (v.c1),
        (b1 * v.n) - (v.c2)
        ]
    dydt=dydt(v)
    return dydt

在此代碼中,variables3.py包含:

class vars:
    def __init__(self, *args):
        (self.n,
    self.c1,
    self.c2)= args

我希望我的最終代碼看起來像這樣:

import numpy as np
from variables_3 import vars
from equations_3 import eqns

    def kinetics(y,t,b1,b2):
        v = vars(*y)
        dydt=eqns.dydt(v)
        return dydt

文件equations_3.py可能看起來像什么呢?

我努力了:

from variables_3 import vars

class eqns:
    def dydt(b1,b2,v):
            return [
        (b1 * v.n) + (b2 * v.c1),
        (b1 * v.n) - (v.c1),
        (b1 * v.n) - (v.c2)]

但是該代碼不起作用。 提前致謝!

def kinetics(y,t,b1,b2): dydt=eqns.dydt(v) def kinetics(y,t,b1,b2):傳遞dydt=eqns.dydt(v)時,請確保在函數調用中傳遞b1b2 您的dydt()函數調用應如下所示: dydt=eqns.dydt(b1, b2, v)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM