Home >Backend Development >Python Tutorial >How to do object-oriented programming in python

How to do object-oriented programming in python

silencement
silencementOriginal
2019-06-24 11:19:053017browse

How to do object-oriented programming in python

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Related articles

See more