繁体   English   中英

如何将变量从一个 function 传递到 python 中的另一个 function

[英]How to pass a variable from one function to another function in python

有 2 个功能(购买,关闭)。 首先 buy() function 将通过 Button(tkinter GUI) 执行,然后 Close() function 将执行。 那么如何将变量从购买函数()传递给关闭()function。

def buy():
    headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json',
      'x-session-token': tokens
    }
    requestBody={
      "symbolName": "JSWSTEEL",
      "exchange": "NSE",
      "transactionType": "BUY",
      "orderType": "MKT",
      "quantity": "1",
      "disclosedQuantity": "1",
      "orderValidity": "DAY",
      "productType": "CO",
      "triggerPrice": "194.00"
    }
    r = requests.post('https://api.stocknote.com/order/placeOrderCO' ,data = json.dumps(requestBody), headers = headers)
    orderno = r.json().get("orderNumber")
    print (r.text)
    print (orderno)
    return orderno
a = Thread(target=buy)
a.start
def close():
    import requests
    headers = {
      'Accept': 'application/json',
      'x-session-token': tokens
    }

    c = requests.delete('https://api.stocknote.com/order/exitCO', params={
      'orderNumber': orderno
    }, headers = headers)

    print(c.text)
cl = Thread(target=close)
cl.start

我需要将来自 buy() function 的变量 orderno 传递给 close() function。 我使用 tkinter GUI window 来触发每个 function,所以购买() ZC1C425268E68385D1AB5074C 将在稍后触发。

def open():
    """do stuff"""
    return orderno

def close(variable_you_want_to_pass):
    """do something here"""

orderno = open()
close(variable_you_want_to_pass = orderno)

variable_you_want_to_pass现在是 function 中的局部变量。

你不能在你的 buy() 代码之外定义你的变量吗? 在这种情况下,您的 function buy() 将修改一个全局变量,可从任何 function 访问,包括 close()。

或者,如果您想要更简洁的代码,您可以制作 class 并将变量设置为 class 属性。

最后一个解决方案,为您的关闭提供一个参数:

def close (odn):
    orderno = odn
    ...

让你的 buy() function return orderno 然后你只需要调用 close(buy())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM