python - Python 类练习不适用于父类
问题描述
我有以下练习,但我无法完全理解如何使其工作。
开发一个包含以下内容的程序:
1- 一个父类 Account 包含:
属性:
- 文本类型名称
- 整数类型数量(账户中的钱)
还包含一个返回 Account 类中的数据的方法。
2-定义继承自Account类的两个类FixedTime和Savings,其中
储蓄班
- 定义传递从Account Class继承的数据的init
- 您将有一个打印信息的方法。
FixedTime 类将具有:
定义传递从 Account Class 继承的数据的init以具有:
- 属性项类型整数
- 浮动利率属性。
方法:
- (金额*利息/100)的结果获取利息金额的方法 2. 显示持有人信息、数据、期限、利息、利息总额的方法。创建一个主程序,在其中定义一个 FixedTime 和 Savings 类的变量,填写必要的信息并验证每个指示方法的功能。
我有以下代码:
class Account:
def __init__(self, name, amount):
self.name = name
self.amount = amount
def get_name(self):
return self.name
def get_amount(self):
return self.amount
class Saving(Account):
def __init__(self, name, amount):
Account.__init__(self, name, amount)
def get_info(self):
print(f"{self.name}, {self.amount}")
class Fixrate(Account):
def __init__(self, rate, time):
self.rate = rate
self.time = time
def total_import(self):
total = (self.amount * self.rate)/ 100
return total
def rate_info_print(self):
print(f"Name: {self.name} term: {self.time} rate: {self.rate} Total rate: {self.total_import()}")
person = Account("andres", 5000)
date = Fixrate(4.5, 4)
Saving.get_info(person)
Fixrate.rate_info_print(person)
我收到此错误:
print(f"Name: {self.name} term: {self.time} rate: {self.rate} Total rate: {self.total_import()}") AttributeError: 'Account' object has no attribute 'time'
解决方案
- 你需要分配
time
和name
Fixrate __init__
- 你创建一个实例来
Fixrate
调用date
,那么你应该使用它而不是使用Fixrate.rate_info_print(person)
代码:
class Account:
def __init__(self, name, amount):
self.name = name
self.amount = amount
def get_name(self):
return self.name
def get_amount(self):
return self.amount
class Saving(Account):
def __init__(self, name, amount):
super().__init__(name, amount)
def get_info(self):
print(f"{self.name}, {self.amount}")
class Fixrate(Account):
def __init__(self, rate, time, name, amount):
self.rate = rate
self.time = time
super(Fixrate, self).__init__(name,amount)
def total_import(self):
total = (self.amount * self.rate)/ 100
return total
def rate_info_print(self):
print(f"Name: {self.name} term: {self.time} rate: {self.rate} Total rate: {self.total_import()}")
person = Account("andres", 5000)
date = Fixrate(4.5, 4,"andres",5000)
Saving.get_info(person)
date.rate_info_print()
结果:
andres, 5000
Name: andres term: 4 rate: 4.5 Total rate: 225.0
或者如果你想使用person
,你可以试试这个。
代码:
class Account:
def __init__(self, name, amount):
self.name = name
self.amount = amount
def get_name(self):
return self.name
def get_amount(self):
return self.amount
class Saving(Account):
def __init__(self, name, amount):
super().__init__(name, amount)
def get_info(self):
print(f"{self.name}, {self.amount}")
class Fixrate(Account):
def __init__(self, rate, time, person):
self.rate = rate
self.time = time
self.person = person
# super(Fixrate, self).__init__(name,amount)
def total_import(self):
total = (self.amount * self.rate)/ 100
return total
def rate_info_print(self):
self.name = person.get_name()
self.amount = person.get_amount()
print(f"Name: {self.name} term: {self.time} rate: {self.rate} Total rate: {self.total_import()}")
person = Account("andres", 5000)
date = Fixrate(4.5, 4,person)
Saving.get_info(person)
date.rate_info_print()
结果:
andres, 5000
Name: andres term: 4 rate: 4.5 Total rate: 225.0
推荐阅读
- android - 用于 Android 的 Cordova 中的 XMLHttpRequest
- java - Android 创建自定义操作栏 3 项
- reactjs - 在 react-google-maps 中设置 OverlayView 的 z-index
- python - Xbox One 使用 Analogue Stick withevdev 无线控制伺服
- python - 在 Python 3.x 中保留或添加小数位
- python - 在python中更改函数中的全局变量
- javascript - 在 Chrome 扩展程序的弹出窗口之外打开警报
- c# - 如何在子视图中使用剃刀布局视图中的注入服务
- grails - 如何在 Grails 中做到这一点,我使用的是 Grais 3.2.11?
- javascript - CSP - 如何解决 style-src unsafe-inline -当有动态定位的页面元素时