Home > Article > Backend Development > [Python learning] Object-oriented programming
Process-oriented programming regards a computer program as a series of command sets, that is, the sequential execution of a set of functions. In order to simplify programming, process-oriented functions are continued to be divided into sub-functions, that is, large functions are cut into small functions to reduce the complexity of the system.
Python and java are both object-oriented languages. Characteristics of object-oriented programmingData encapsulation, inheritance and polymorphism
1. Classes and instances
The most important concepts of object-oriented programming are classes and instances ), you must remember that a class is an abstract template, such as the Student class, and instances are specific "objects" created based on the class. Each object has the same methods, but their data may be different.
In python, the class keyword is also used to define a class. Class is followed by the class name, which needs to be capitalized at the beginning. The brackets after it indicate which class it inherits, that is, its parent class.
class Student(object): pass
We can freely bind attributes to this variable
>>>nick.name = 'Liu Ling Hao' >>>nick.name 'Liu Ling Hao'
The different functions defined later are methods. In summaryObject = Attribute Method
Because classes can function as templates, when creating an instance, we can forcefully fill in some attributes that we think must be bound. At this time, you need to use the more special __init__ method. (There are two underscores before and after int) The first parameter of the
__init__ method is always self, which represents the created instance itself.
class Student(object): def __init__(self, name, score): self.name = name self.score = scor >>> bart = Student('Bart Simpson', 59) >>> bart.name 'Bart Simpson' >>> bart.score 59
When you have the __init__ method, you cannot pass in empty parameters when creating an instance. You must pass in parameters that match the __init__ method
2. Encapsulation, inheritance and polymorphism
An important feature of object-oriented programming is data encapsulation.
Just like name and score in the above example, we can access it directly through functions defined inside the class. For example, we can add a piece of data or sort a list. We can implement it, but we don't know it. The interior is achieved through how it is adjusted.
When we define a class, we can inherit from an existing class. The new class is called a subclass (Subclass), and the inherited class is called a base class or a parent class. Or super class (Base class, Super class).
The advantage of inheritance is that you get all the functions of the parent class. For subclasses, you can continue to write on the basis of the parent class, which is more convenient.
class Person(object): def idea(self): print('study is happy')class Liu(Person): pass liu =Liu()liu.idea study is happy
Of course, if the subclass When there is the same method as the parent class, it will automatically override the parent class's
Polymorphism: different objects respond to different actions for the same method
>>>class Nick1: def name(self): print("我是1") >>>class Nick2: def name(self): print("我是2") >>>a = Nick1() >>>b = Nick2() >>>a.name 我是1 >>>b.name 我是2
Although the function names used are the same, the implementations are different Same.
def run(animal): animal.run() animal.run() >>> run(Animal()) Animal is running... Animal is running... >>> run_twice(Dog()) Dog is running... Dog is running...
The advantage of polymorphism is that when we need to pass in Dog or other animals, we only need to receive the Animal type, because Dogs are all Animal types, and then operate according to the Animal type. . Since the Animal type has a run() method, any type passed in, as long as it is an Animal class or subclass, will automatically call the run() method of the actual type. This is polymorphism.
[Recommended course: Python video tutorial]
The above is the detailed content of [Python learning] Object-oriented programming. For more information, please follow other related articles on the PHP Chinese website!