父类构造函数python 父类构造函数可以被继承吗

python构造函数python构造函数是什么?一起来看看吧!
构造函数指的是:1、在对象进行实例化的时候 , 系统自动调用的一个函数叫构造函数,通常此函数用来对实例化对象进行初始化;2、构造函数一定要有,如果没有,则自动向上查找,按照MRO顺序,直到找到为止
例如:
# 继承的语法# 在python中 , 任何类都有一个共同的父类叫objectclass Person():name = "NoName"age = 18__score = 0# 考试成绩是秘密,只要自己知道_petname = "sec"# 小名,是保护的,子类可以用,但不能公用def sleep(self):print("Sleeping ... ...")# 父类写在括号里class Teacher(Person):teacher_id = "9527"def make_test(self):print("attention")t = Teacher()print(t.name)print(t._petname)# 私有访问问题# 公开访问私有变量,报错# print(t.__score)t.sleep()print(t.teacher_id)t.make_test()
Python面向对象编程之继承与多态详解Python面向对象编程之继承与多态详解
本文实例讲述了Python面向对象编程之继承与多态 。分享给大家供大家参考 , 具体如下:
Python 类的继承
在OOP(Object Oriented Programming)程序设计中,当我们定义一个class的时候 , 可以从某个现有的class 继承 , 新的class称为子类(Subclass) , 而被继承的class称为基类、父类或超类(Base class、Super class) 。
我们先来定义一个class Person , 表示人 , 定义属性变量 name 及 sex (姓名和性别);
定义一个方法print_title():当sex是male时,print man;当sex 是female时,print woman 。参考如下代码:
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):# Child 继承 Person
pass
May = Child("May","female")
Peter = Person("Peter","male")
print(May.name,May.sex,Peter.name,Peter.sex)# 子类继承父类方法及属性
May.print_title()
Peter.print_title()
而我们编写 Child 类 , 完全可以继承 Person 类(Child 就是 Person);使用 class subclass_name(baseclass_name) 来表示继承;
继承有什么好处?最大的好处是子类获得了父类的全部属性及功能 。如下 Child 类就可以直接使用父类的 print_title() 方法
实例化Child的时候,子类继承了父类的构造函数,就需要提供父类Person要求的两个属性变量 name 及 sex:
在继承关系中,如果一个实例的数据类型是某个子类 , 那它也可以被看做是父类(May 既是 Child 又是 Person) 。但是 , 反过来就不行(Peter 仅是 Person,而不是Child) 。
继承还可以一级一级地继承下来,就好比从爷爷到爸爸、再到儿子这样的关系 。而任何类,最终都可以追溯到根类object,这些继承关系看上去就像一颗倒着的树 。比如如下的继承树:
isinstance()及issubclass()
Python 与其他语言不同点在于,当我们定义一个 class 的时候,我们实际上就定义了一种数据类型 。我们定义的数据类型和Python自带的数据类型 , 比如str、list、dict没什么两样 。
Python 有两个判断继承的函数:isinstance() 用于检查实例类型;issubclass() 用于检查类继承 。参见下方示例:
class Person(object):
【父类构造函数python 父类构造函数可以被继承吗】pass
class Child(Person):# Child 继承 Person
pass
May = Child()
Peter = Person()
print(isinstance(May,Child))# True
print(isinstance(May,Person))# True
print(isinstance(Peter,Child))# False
print(isinstance(Peter,Person))# True

推荐阅读