Start from this blog to the highlight of the Python language - the language of classes, objects and other related knowledge. Python is originally an object-oriented programming language.
Speaking of objects, they are inseparable from classes. Generally, we instantiate an object through a class. The object is actually attributes + methods. Let’s start with the definition of a class:
1. Definition of a class
The definition of a class uses the keyword class
**class class name (the first letter of the class name is usually capitalized):
Object Attributes
Methods of objects**
After defining the class, the object can be instantiated. The instantiation of the object is the same as in languages such as C++.
class Turtle:#类名约定以大写字母开头 #属性 color='green' weight=10 legs=4 shell=True mouth='大嘴' #方法 def climb(self): print("我正在很努力的向前爬...") def run(self): print("我正在飞快的向前跑...") def bite(self): print("咬死你要咬死你...") def eat(self): print("有得吃,真满足") def sleep(self): print("困了,睡了,晚安")#类的实例化tt=Turtle()#生成一个Turtle的实例化对象tt.climb()
#2. Object-oriented features
(1) Encapsulation: It is an information hiding technology, that is, it automatically hides the details of the internal implementation, but only satisfies our needs.
(2) Inheritance: a mechanism for subclasses to automatically share data and methods between parent classes
The definition of inheritance is to add one () to the definition of the class. The one in parentheses is the inherited parent class, also called the base kind.
class Mylist(list): pass list2=Mylist()list2.append(5)print(list2)
(3) Polymorphism: Different objects respond to different actions for the same method
class A: def fun(self): print("我是小A......")class B: def fun(self): print("我是小B......") a=A() a.fun() b=B() b.fun()
The parameters in a class method are conventionally written as the first parameter. The role of self is similar to a C++ pointer.
class Ball: def setName(self,name): self.name=name def kick(self): print("我叫%s,该死的,谁踢我......"%self.name) a=Ball() a.setName("球A") b=Ball() b.setName('球B') c=Ball() c.setName('土豆') c.kick()