I. Classes and instances
Object-oriented concepts are classes (class) and instances (Instance), and it is important to keep in mind that classes are abstract templates, such as student classes, and instances are specific "objects" that are created from classes, each with the same method, but the data may be different for each object.
1 class Student (object): 2 ... Pass 3
In Python, the definition of a class is by keyword, followed by the class name, that is, the class
class
Student
class name is usually the beginning of the word, followed by the class is the class (object)
from which to inherit, the concept of inheritance we will say later, usually, if there is no appropriate inheritance class, Just use the object
class, which is the class that all classes will eventually inherit.
Once you have defined the Student
class, you can Student
create Student
an instance from the class by using the class name + () to create the instance:
1 >>> st1 = Student ()2 >>> st13 <__main__. Student object at 0x1014b2320>4 >>> Student5 <class' __main__. Student'>
As you can see, the variable st1 points to an Student
instance, followed by a 0x1014b2320
memory address, each object has a different address, and Student
itself is a class.
Second, instance properties
You can freely bind a property to an instance variable, for example, bind an attribute to an instance st1 and an age name
property:
1 ' Jack ' 2 >>> st1.age =3 >>> st1.name4'Jack' 5 >>> st1.age6 28
Three, __init__ () function
Because a class can act as a template, you can force a number of attributes that we think must be bound to be filled in when creating an instance. By defining a special __init__
method, when you create an instance, you bind the name
attributes of age and so on:
1>>>classStudent (object):2...def __init__(self, Name, age):3... Self.name =name4... Self.age = Age5 ... 6>>> st1 = Student ('Mick', 20)7>>>St1.name8 'Mick'9>>>St1.ageTen20
Notice that the __init__
first parameter of the method is always the one that self
represents the created instance itself, so within the __init__
method, you can bind various properties to it self
, because self
it points to the created instance itself.
With the __init__
method, when you create an instance, you cannot pass in an empty argument, you must pass in a __init__
parameter that matches the method, but it self
does not need to be passed, and the Python interpreter will pass in the instance variable itself.
A function defined in a class is only a little different than a normal function, that is, the first argument is always an instance variable, self
and when called, it is not passed. In addition, there is no difference between a class method and a normal function, so you can still use default parameters, variable arguments, keyword arguments, and named keyword parameters.
Iv. Data Encapsulation
A Student
function that accesses data is defined inside the class, so that the "data" is encapsulated. The functions of these encapsulated data are Student
associated with the class itself, and we call it the method of the class:
1 class Student (object): 2 3 def __init__ (self, name, score): 4 self.name = name 5 self.score = score 6 7 def Print_score (self): Span>8 print ( '
1 >>>st1 = Student ('Jack', 2) >>> St1.print_score ()3 jack:59
class methods encapsulate data and logic, just call it and don't know how to implement it.
The use of classes makes it easy to add new methods.
1 classStudent (object):2 ...3 4 defGet_grade (self):5 ifSelf.score >= 90:6 return 'A'7 elifSelf.score >= 60:8 return 'B'9 Else:Ten return 'C'
Python object-oriented class two and instance