python 类继承 baseclass_Python:Dataclass继承自base Dataclass,如何将值从base升级到新类?...
您可能不希望class本身是一个可变属性,而是使用诸如enum之类的东西来指示这样的状态。根据需求,您可以考虑以下几种模式之一:class RelationshipStatus(Enum):
STRANGER = 0
FRIEND = 1
PARTNER = 2
@dataclass
class Person(metaclass=ABCMeta):
full_name: str
smell: str = "good"
status: RelationshipStatus = RelationshipStatus.STRANGER
@dataclass
class GreetablePerson(Person):
nickname: str = ""
@property
def greet_name(self):
if self.status == RelationshipStatus.STRANGER:
return self.full_name
else:
return self.nickname
def say_hi(self):
print(f"Hi {self.greet_name}")
if __name__ == '__main__':
random_stranger = GreetablePerson(full_name="Robert Thirstwilder",
nickname="Bobby")
random_stranger.status = RelationshipStatus.STRANGER
random_stranger.say_hi()
random_stranger.status = RelationshipStatus.FRIEND
random_stranger.say_hi()
您可能还希望以trait/mixin样式实现这一点。与其创建一个GreetablePerson,不如创建一个同样抽象的类Greetable,并使您的具体类继承这两个类。在
您还可以考虑使用优秀的、后端口的、更灵活的^{}包。这也使您能够使用evolve()函数创建一个新对象:
^{pr2}$
python 类继承 baseclass_Python:Dataclass继承自base Dataclass,如何将值从base升级到新类?...相关推荐
- Python 类的定义、继承及使用对象
Python 类的定义.继承及使用对象 作者:保⑩洁 本文转载:http://www.17jo.com/program/python/base/ClassUse.html Python编程中类的概念可 ...
- python代码学习——类与对象提升(继承、超继承,类的例题,魔术方法)
python代码学习--类与对象提升 继承 继承的特殊属性: 代码示例 方法的重写和覆盖(overrrid) 总结 超继承 继承中的初始化 多继承 例题 类的魔术方法 哈希(hash)和eq方法 bo ...
- 零基础入门学习Python(36) 类和对象:继承
继承的语法结构 class DervieClassName(BaseClassName) 被继承的类我们称之为"父类","基类"或"超类", ...
- python类变量继承_python 类的成员及继承
1. @staticmethod 静态方法 静态方法不能访问实例变量和类变量,除了身处类里面,所以只能通过类调用以外,它其实和类没有什么关系.如果想要用它访问实例变量或类变量,需要把实例和类传递给函数 ...
- python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态
六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...
- python编程-迭代器(类,方法,继承),函数,数据结构,
a, b = 0, 1 while b < 10:print(b) #print(b,end=',')a, b = b, a+b相当于 n=b m=a+b a=n b=m输出: 1 1 2 3 ...
- python编程语言继承_Python面向对象程序设计类的封装与继承用法示例
本文实例讲述了Python面向对象程序设计类的封装与继承用法.分享给大家供大家参考,具体如下: 访问限制(封装) 1.概念 面向对象语言的三大特征:封装, 继承, 多态. 广义的封装: 类和函数的定义 ...
- Python OOP:继承、单继承、多继承、__mro__、子类重写父类同名属性和方法、子类调用父类同名属性和方法、多层继承、super()、私有(实例)属性和方法、获取修改私有属性值、私有类属性
一.继承 Python⾯向对象的继承指的是多个类之间的所属关系,即⼦类默认继承⽗类的所有属性和⽅法. 继承作用:继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 在P ...
- python新式类和经典类区别_Python中新式类和经典类的区别,钻石继承
1)首先,写法不一样: class A: pass class B(object): 2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索. 3)新式类更符合OOP编程思想,统一了pyt ...
- Python零基础速成班-第9讲-Python面向对象编程(上),对象和类、初始化、继承、重写、多态、类方法、组合
Python零基础速成班-第9讲-Python面向对象编程(上),对象和类.初始化.继承.重写.多态.类方法.组合 学习目标 修饰器 面向对象编程:对象和类.初始化.继承.重写.多态.类方法.组合 课 ...
最新文章
- 并发库应用之三 线程池与定时器应用
- 利用Python实现矩阵乘法并与numpy的结果比较
- 多模态中的Prompt范式:从CLIP、CoOp到CLIP-adapter
- 对于Array的引用
- SAP Spartacus里Product Carousel componentData取数据的逻辑研究
- win7系统屏幕键盘打开教程
- 华住数据库_华住内控人系列故事(四)技术领先篇——搭建大数据风险数据仓,实现自助取数...
- CMS 平台: Drupal, eZ Publish, WordPress, CMS Made Simple 横向比较
- 基于SSM的二手交易平台
- php的异步非阻塞swoole模块使用(一)实现简易tcp服务器--服务端
- 航空订票系统设计(java、数据库、通信联合项目)
- 【单片机】简单的时钟代码
- 微信小程序 转发 分享功能
- FRM-10102错误解决
- linux 同步utc时间吗,中国时区utc在服务器上同步的办法
- 运用深度学习进行文本生成
- 作为互联网人,这些潮流词汇你懂吗?
- 大富豪3(GM商城版)新手攻略之购买土地
- 系统设计-开放平台(一)
- 知道密码,如何去除Word文档的各种保护?
热门文章
- jQuery.bind事件 详解
- ASP.NET 2.0加密Web.config 配置文件
- System level Programming study(1)
- lua32位和64位字符串和Uint之间的转换
- java工程师什么城市就业_热门城市的Java薪资情况
- Java基础,无需使用复杂语句,实现输出0-130之间的数字,每行显示7个数字。
- 平均聚类系数_聚类方法排除CPU用量误报警
- python xpath爬虫_[爬虫]python下的xpath清洗数据之html数据清洗
- [转] 由Request Method:OPTIONS初窥CORS
- Sys.WebForms.PageRequestManagerParserErrorException 错误的解决办法