实现一个 Transaction 类,该类接受 amount、 date、 currency (默认为 USD)、 USD 转换汇率(usd_conversion_rate, 默认为 1)等属性。所有数据属性都必 须是私有属性。该类提供对如下信息的只读获取功能: amount、 date、 currency、 usd_conversion_rate、 description、 usd (amount*usd_conversion_rate)。
时间: 2024-04-11 13:26:05 浏览: 132
Transaction.class
好的,下面是一个基于你的要求实现的 Transaction 类的示例代码:
```python
class Transaction:
def __init__(self, amount, date, currency="USD", usd_conversion_rate=1):
self.__amount = amount
self.__date = date
self.__currency = currency
self.__usd_conversion_rate = usd_conversion_rate
@property
def amount(self):
return self.__amount
@property
def date(self):
return self.__date
@property
def currency(self):
return self.__currency
@property
def usd_conversion_rate(self):
return self.__usd_conversion_rate
@property
def description(self):
return f"Transaction of {self.__amount} {self.__currency} on {self.__date}"
@property
def usd(self):
return self.__amount * self.__usd_conversion_rate
# 创建一个 Transaction 对象
transaction = Transaction(100, "2022-01-01", "CNY", 0.15)
# 获取只读信息
print(transaction.amount) # 100
print(transaction.date) # 2022-01-01
print(transaction.currency) # CNY
print(transaction.usd_conversion_rate) # 0.15
print(transaction.description) # Transaction of 100 CNY on 2022-01-01
print(transaction.usd) # 15.0
```
这段代码定义了一个 Transaction 类,包含了 amount、date、currency、usd_conversion_rate 等私有属性。使用装饰器 `@property` 将这些属性转化为只读属性。同时,还提供了一个计算得出 USD 金额的只读属性 `usd`,以及一个描述信息的只读属性 `description`。你可以根据需要进行修改和扩展。
阅读全文