多态的好处就是,当我们需要传入更多的子类,例如新增 Teenagers、Grownups 等时,我们只需要继承 Person 类型就可以了,而print_title()方法既可以直不重写(即使用Person的),也可以重写一个特有的 。这就是多态的意思 。调用方只管调用,不管细节,而当我们新增一种Person的子类时 , 只要确保新方法编写正确,而不用管原来的代码 。这就是著名的“开闭”原则:
对扩展开放(Open for extension):允许子类重写方法函数
对修改封闭(Closed for modification):不重写,直接继承父类方法函数
子类重写构造函数
子类可以没有构造函数,表示同父类构造一致;子类也可重写构造函数;现在,我们需要在子类 Child 中新增两个属性变量:mother 和 father,我们可以构造如下(建议子类调用父类的构造方法,参见后续代码):
class Person(object):
def __init__(self,name,sex):
self.name = name
self.sex = sex
class Child(Person):# Child 继承 Person
def __init__(self,name,sex,mother,father):
self.name = name
self.sex = sex
self.mother = mother
self.father = father
May = Child("May","female","April","June")
print(May.name,May.sex,May.mother,May.father)
若父类构造函数包含很多属性 , 子类仅需新增1、2个,会有不少冗余的代码 , 这边,子类可对父类的构造方法进行调用,参考如下:
class Person(object):
def __init__(self,name,sex):
self.name = name
self.sex = sex
class Child(Person):# Child 继承 Person
def __init__(self,name,sex,mother,father):
Person.__init__(self,name,sex)# 子类对父类的构造方法的调用
self.mother = mother
self.father = father
May = Child("May","female","April","June")
print(May.name,May.sex,May.mother,May.father)
多重继承
多重继承的概念应该比较好理解,比如现在需要新建一个类 baby 继承 Child ,可继承父类及父类上层类的属性及方法,优先使用层类近的方法,代码参考如下:
class Person(object):
def __init__(self,name,sex):
self.name = name
self.sex = sex
def print_title(self):
if self.sex == "male":
print("man")
elif self.sex == "female":
print("woman")
class Child(Person):
pass
class Baby(Child):
pass
May = Baby("May","female")# 继承上上层父类的属性
print(May.name,May.sex)
May.print_title()# 可使用上上层父类的方法
class Child(Person):
def print_title(self):
if self.sex == "male":
print("boy")
elif self.sex == "female":
print("girl")
class Baby(Child):
pass
May = Baby("May","female")
May.print_title()# 优先使用上层类的方法
python是面向什么的高级语言?面相对象、解释型 。
Python支持多种编程范型,包括函数式、指令式、反射式、结构化和面向对象编程 。它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛python面向函数编程的标准库 。它的语言结构以及面向对象的方法旨在帮助程序员为小型的和大型的项目编写清晰的、合乎逻辑的代码 。
吉多·范罗苏姆于1980年代后期开始研发Python,它是作为ABC语言的后继者 , 也可以视之为使用叫做的M-表达式的一种传统中缀表示法的LISP方言 。
吉多·范罗苏姆于1991年首次发布 Python 0.9.0 。Python2.0于2000 年发布并引入python面向函数编程了新功能 。Python3.0于2008年发布,是该语言的主要修订版 , 并非完全向后兼容 。Python2于2020年随2.7.18版停止使用 。
Python的设计哲学强调代码的可读性和简洁的语法,尤其是使用空格缩进划分代码块 。相比于C或Java,Python让开发者能够用更少的代码表达想法 。
- mysqli获取所有数据 mysql的提取函数
- mysql 分组函数 mysql分组取数据
- mysql统计函数
- mysql有rank函数吗 mysql有rank
- mongdb python pythonmongodb操作
- redis-cli命令不能用 redis函数调用失败
- mysql的判断函数 mysql怎么判断奇偶数
- mysql数据库编码格式查询 mysql编码函数
- mysql日期yyyymmdd mysql中的日期型函数
- mysql序列函数 mysql如何查序列
