Object-oriented programming is simply based on the use of classes and objects. All codes are implemented through classes and objects. Programming is object-oriented programming!
The three major characteristics of object-oriented: encapsulation, inheritance, polymorphism
First create a class
#使用class创建一个School类,类中有个student方法 class School: def student(self): pass a1=School()
1. Encapsulation
1. Encapsulation: Encapsulate certain content into a place first, and then call it when needed
class School: def __init__(self,name,age): #构造方法,创建对象是执行 self.name=name self.age=age#创建对象a1,a2a1=School("zhangsan",18) a2=School("lisi",18)
The above code implements the function of encapsulation, and encapsulates the respective name and age into the name and age attributes of self respectively. , it is equivalent to being encapsulated into objects a1 and a2. The functions defined in the
class are called methods, and the functions with __init__ are called constructors, which will be automatically executed when creating a1 and a2 objects.
2. Calling: There are two ways to call, direct calling through the object and indirect calling through self
Direct calling through the object
class School: def __init__(self,name,age): self.name=name self.age=age def student(self): print("name:%s,age:%s"%(self.name,self.age))#创建对象a1,a2a1=School("zhangsan",18) a2=School("lisi",18) print a1.name,a1.age print a2.name,a2.age#执行结果: zhangsan 18 lisi 18
Indirect calling through self
class School: def __init__(self,name,age): self.name=name self.age=age def student(self): print("name:%s,age:%s"%(self.name,self.age)) #创建对象a1,a2 a1=School("zhangsan",18) a2=School("lisi",18) #执行类中的方法时,通过self间接调用被封装的内容 a1.student() a2.student() #执行结果: #name:zhangsan,age:18 #name:lisi,age:18
2. Inheritance
1. Inheritance: both the derived class (subclass) can inherit the methods of the base class (parent class), and we can extract the methods common to multiple classes into the parent class, so that The subclass only needs to inherit the parent class without having to implement each method one by one.
Write another class in brackets after the class name to indicate that it has inherited that class
class School: def __init__(self,name,age): self.name=name self.age=age def student(self): print("name:%s,age:%s"%(self.name,self.age)) def classroom(self): print("%s去教室"%self.name) class SchoolA(School): #SchoolA继承School def __init__(self,name): self.name=name class SchoolB(SchoolA): #SchoolB继承SchoolA def __init__(self,name): self.name=name #创建对象a1 a1=SchoolA("zhangsan") a1.classroom() #创建对象a2 a2=SchoolB("lisi") a2.classroom() #执行结果: # zhangsan去教室 # lisi去教室
In the above code we As you can see, there is no classroom method in SchoolA and SchoolB, but because SchoolB inherits SchoolA, and SchoolA inherits School, they can
call the classroom method in School after creating the object.
2. Multiple inheritance
In python, a class can also inherit multiple classes. When inheriting multiple classes, there are two ways to search for functions in the class
Depth priority: When the class is a classic class, in the case of multiple inheritance, it will be searched in a depth-first manner
Breadth priority: When the class is a new-style class, in the case of multiple inheritance, it will be searched in a breadth-first manner
(in python3.
The above is the detailed content of How to do object-oriented programming in python. For more information, please follow other related articles on the PHP Chinese website!