使用 python 回顾添加对象属性
Add object properties in retrospect using python
我正在创建一个程序,它从不同的文本文件中读取数据并将信息保存到对象中。我可以从一个文本文件的信息创建一个对象。
想象一下,如果我创建一个如下所示的 class:
class Stock:
def __init__(self, company_name, solidity, share_price, p_e, p_s, beta_value, max_value, min_value):
self.company_name = company_name
self.solidity = solidity
self.share_price = share_price
self.p_e = p_e
self.p_s = p_s
self.beta_value = beta_value
self.max_value = max_value
self.min_value = min_value
然后我创建了一个只有一半属性的对象,如下所示:
stock = Stock(company_name, 0, share_price, 0, 0, beta_value, 0, 0)
我以后如何向同一个对象添加更多信息,即使我有很多对象,例如:
stock = Stock(0, solidity, 0, p_e, p_s, 0, max_value, min_value)
您可以像这样分配您想要的值
stock.solidity = solidity
stock.p_e = p_e
stock.p_s = p_s
stock.max_value = max_value
stock.min_value = min_value
您不想在第一个之后调用 Stock(0, solidity, 0, p_e, p_s, 0, max_value, min_value)
,这将创建您的 class 的另一个实例。
您需要在 class 中实现一个方法,允许更新稍后给定的属性。
另一个提示,当你有很多参数时,你应该使用命名参数来简化它。它还允许定义默认参数并避免每次都给出所有参数:
class Stock():
def __init__(self, company_name='', solidity=0,
share_price=0, p_e=0, p_s=0,
beta_value=0, max_value=0, min_value=0):
self.company_name = company_name
self.solidity = solidity
self.share_price = share_price
self.p_e = p_e
self.p_s = p_s
self.beta_value = beta_value
self.max_value = max_value
self.min_value = min_value
def update(self, **kwargs):
for key in kwargs:
setattr(self, key, kwargs[key])
s = Stock(solidity=10,
share_price=120
)
s.update(beta_value=12)
我正在创建一个程序,它从不同的文本文件中读取数据并将信息保存到对象中。我可以从一个文本文件的信息创建一个对象。
想象一下,如果我创建一个如下所示的 class:
class Stock:
def __init__(self, company_name, solidity, share_price, p_e, p_s, beta_value, max_value, min_value):
self.company_name = company_name
self.solidity = solidity
self.share_price = share_price
self.p_e = p_e
self.p_s = p_s
self.beta_value = beta_value
self.max_value = max_value
self.min_value = min_value
然后我创建了一个只有一半属性的对象,如下所示:
stock = Stock(company_name, 0, share_price, 0, 0, beta_value, 0, 0)
我以后如何向同一个对象添加更多信息,即使我有很多对象,例如:
stock = Stock(0, solidity, 0, p_e, p_s, 0, max_value, min_value)
您可以像这样分配您想要的值
stock.solidity = solidity
stock.p_e = p_e
stock.p_s = p_s
stock.max_value = max_value
stock.min_value = min_value
您不想在第一个之后调用 Stock(0, solidity, 0, p_e, p_s, 0, max_value, min_value)
,这将创建您的 class 的另一个实例。
您需要在 class 中实现一个方法,允许更新稍后给定的属性。
另一个提示,当你有很多参数时,你应该使用命名参数来简化它。它还允许定义默认参数并避免每次都给出所有参数:
class Stock():
def __init__(self, company_name='', solidity=0,
share_price=0, p_e=0, p_s=0,
beta_value=0, max_value=0, min_value=0):
self.company_name = company_name
self.solidity = solidity
self.share_price = share_price
self.p_e = p_e
self.p_s = p_s
self.beta_value = beta_value
self.max_value = max_value
self.min_value = min_value
def update(self, **kwargs):
for key in kwargs:
setattr(self, key, kwargs[key])
s = Stock(solidity=10,
share_price=120
)
s.update(beta_value=12)