Python learning Day 7 object-oriented class and instance access restrictions, pythonday
Object-Oriented Programming
Object Oriented Programming (OOP) is a Programming idea. OOP regards objects as the basic unit of a program. An object contains functions for data and operation data.
Process-oriented programming treats a computer program as a collection of commands, that is, the sequential execution of a group of functions. To simplify the program design, process-oriented functions are further split into subfunctions, that is, large functions are cut into small functions to reduce the complexity of the system.
Object-Oriented Programming treats computer programs as a collection of objects, and each object can receive and process messages sent from other objects, the execution of a computer program is the transmission of a series of messages between objects.
In Python, all data types can be regarded as objects, and you can also customize objects. The custom object data type is the concept of Class in the object-oriented model.
Class and instance
Classes are abstract templates, such as Student classes, and instances are specific "objects" created based on classes. Each object has the same method, but its data may be different.
Define a class by using the class keyword
Class Student (object): # define a class by using the class keyword
Pass
>>> Bart = Student ()
>>> Bart
<__Main _. Student object at 0x10a67a590>
>>> Student
<Class '_ main _. Student'>
>>> Class Student (object ):
Def _ init _ (self, name, score ):
Self. name = name
Self. score = score
Compared with a common function, the function defined in the class is only a little different, that is, the first parameter is always the instance variable self, and you do not need to pass this parameter when calling.
Data encapsulation
>>> defprint_score(std):
... print'%s: %s' % (std.name, std.score)
...
>>> print_score(bart)
Bart Simpson: 59
classStudent(object):
def__init__(self, name, score):
self.name = name
self.score = score
defprint_score(self):
print'%s: %s' % (self.name, self.score)
A class is a template for creating an instance, and an instance is a specific object. The data of each instance is independent of each other and does not affect each other;
The method is the function bound to the instance. Unlike the common function, the method can directly access the instance data;
By calling a method on an instance, we directly manipulate the data inside the object, but do not need to know the implementation details inside the method.
Different from static languages, Python allows you to bind any data to instance variables. That is to say, for both instance variables, although they are different instances of the same class, their variable names may be different.
Access Restrictions
In the Class, attributes and methods can be available, while external code can directly call the method of instance variables to operate data, thus hiding the internal complex logic. If you want to prevent internal properties from being accessed externally, you can add two underlines __before the attribute name. In Python, if the instance variable name starts, it becomes a private variable, which can only be accessed internally and cannot be accessed externally.
ClassStudent (object ):
Def _ init _ (self, name, score ):
Self. _ name = name
Self. _ score = score
Defprint_score (self ):
Print '% s: % s' % (self. _ name, self. _ score)