python-3.x - 如何避免在子类中重复调用实例变量?
问题描述
我想知道在创建子类时,Python 中是否有办法摆脱对实例变量的重复调用。例如:
class Name:
def __init__(self,first,last):
self.first = first
self.last = last
def __str__(self):
return f"Users first name is : {self.first}, Users last name is: {self.last}"
def __repr__(self):
return f"first:{self.first}, last:{self.last}"
class Cash(Name):
def __init__(self,first,last,cash):
super().__init__(first,last)
self.cash = cash
def full(self):
return f"{self.first},{self.last},{self.cash}"
c1 = Cash("Exa","Cool",200)
print(c1.full())
是否可以从“Name”调用所有实例变量(self.first,self.last...),而不必在“Cash”的构造函数中提及它们
就像是:
class Cash(Name):
def __init__("all from Name" + new one ("cash" in this example)):
super().__init__("all from Name")
self.cash = cash
解决方案
在您的情况下,您可以将Cash
类更改为如下所示:
class Cash(Name):
def __init__(self,*inputs):
super(Cash,self).__init__(*inputs[:-1])
self.cash = inputs[-1]
def full(self):
return f"{self.first},{self.last},{self.cash}"
但是对于涵盖所有情况的更通用的解决方案,请查看这个类似的问题。
推荐阅读
- azure - Azure 请求中的承载丢失
- java - 如何在 jsp 和 ajax 中为两个选择选项框动态地从 mysql 获取和填充值到 HTML 选择选项
- angular - 菜单中的递归搜索和过滤
- c# - 如何根据注入上下文自定义注入实例?
- apache - 为什么这个 .htaccess 规则会阻止所有人?
- html - 为什么下拉菜单的宽度与我的折叠导航栏的链接不相似
- zxing - ZXing二维码扫描动画
- ruby-on-rails - 如何检测用gorm更改的一列
- asp.net-core - 如何在 ASP .NET Core Web API 中调用 SQL 查询
- python - 读取大型 csv 文件时设置 dtypes 的问题