随着参数的变化更新类的属性:如何保持经纪账户类的更新?

2024-06-11 11:26:33 发布

您现在位置:Python中文网/ 问答频道 /正文

如果一个类的实例的属性每时每刻都在变化,那么如何保持它的属性是最新的呢?你知道吗

例如,我定义了一个类来描述我的股票交易经纪账户余额。我定义了一个函数,它ping代理API并返回一个JSON对象,其中包含各种参数的当前状态。然后将这些参数的状态设置为给定实例的属性。你知道吗

import json
import requests
from ConfigParser import SafeConfigParser   

class Account_Balances:
    def Account_Balances_Update():
    """Pings brokerage for current status of target account"""
        #set query args
        endpoint = parser.get('endpoint', 'brokerage') + 'user/balances'
        headers = {'Authorization': parser.get('account', 'Auth'), 'Accept': parser.get('message_format', 'accept_format')}

        #send query
        r = requests.get(endpoint, headers = headers)
        response = json.loads(r.text)
        return response        

    def __init__(self):

        self.response = self.Account_Balances_Update()
        self.parameterA = response['balances']['parameterA']
        self.parameterB = response['balances']['parameterB']  

从目前的情况来看,这段代码在创建实例时设置参数,但这些参数是静态的。你知道吗

大概parameterAparameterB正在不断变化,所以我需要在请求时为任何给定实例保持最新。更新参数需要重新运行Account_Balances_Update()函数。你知道吗

在快速移动的环境(如股票交易)中,保持类的给定实例的属性最新的pythonic方法是什么?你知道吗


Tags: 实例importselfparser参数get属性response
1条回答
网友
1楼 · 发布于 2024-06-11 11:26:33

为什么不创建一个更新方法呢?你知道吗

class Account_Balances:
    @staticmethod
    def fetch():
        """Pings brokerage for current status of target account"""
        #set query args
        endpoint = parser.get('endpoint', 'brokerage') + 'user/balances'
        headers = {'Authorization': parser.get('account', 'Auth'), 'Accept': parser.get('message_format', 'accept_format')}

        #send query
        r = requests.get(endpoint, headers = headers)
        response = json.loads(r.text)
        balances = response['balances']

        return balances['parameterA'], balances['parameterB']

    def update(self):
        self.parameterA, self.parameterB = self.fetch()

相关问题 更多 >