知识点:
编程范式:面向过程、面向对象(oop)、函数式编程
特性:
类:一个类即是对一类拥有相同属性的对象的抽象、蓝图、原型。
在类中定义了这些对象的都具备的属性(variables(data) 、共同的方法
对象:一个对象即是一个类的实例化后实例,一个类必须经过实例化后方可在程序中调用,一个类可以实例化多个对象,
每个对象亦可以有不同的属性,就像人类是指所有人,每个人是指具体的对象有共性,亦有不同
封装:在类中对数据的赋值、内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,
里面包含着类的数据和方法
继承:可以派生出子类,在这个父类里定义的属性、方法自动被子类继承
多态:一个接口,多种实现。指基类中派生出了不同的子类。
语法
#class Animal:经典类
class Animal(object):#新式类
主要区别:继承
属性(动态属性:方法 静态属性:实例变量)
类变量:类定义的变量,类实例公共的属性
实例变量:具体对象的属性,作用域是对象本身
方法
构造函数:实例创建的时候执行
析构函数:实例释放、销毁的时候执行,释放内存等工作
私有方法:__name()只能内部调用
私有属性:__name,只能通过内部读取修改
@staticmethod
静态方法:只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性
@classmethod
类方法:类方法只能访问类变量,不能访问实例变量
@property
属性方法:把一个方法变成一个静态属性
class person(object):
love = 1
list = []
name ="12221"
def __init__(self,name,age=22,addr="BJ",info=10000):
self.name =name
self.age = age
self.addr = addr
self.__info = info # 私有属性
self.__food =None
print("None person")
def __del__(self):
print("%s in the del"%self.name)
def show_info(self):
print("info %s"%self.__info)
def __pao(self):
‘‘‘
私有方法
:return:
‘‘‘
print("run")
@staticmethod
def eat(self):
‘‘‘
静态方法
:param self:
:return:
‘‘‘
print("in eat %s "%self)
@classmethod
def run(self):
‘‘‘
类方法,只能调用类变量
:return:
‘‘‘
print("in run %s"%self.name)
@property
def sleep(self):
print("in sleep %s"%self.__food)
@sleep.setter
def sleep(self,food):
print("!!!!!!! sleep %s"%food)
self.__food =food
@sleep.deleter
def sleep(self):
del self.__food
print("!!!!")
p =person(‘aa‘)
p.eat(‘eat‘)#静态方法调用
p.run() #类方法调用
p.sleep #调用property下的
p.sleep=22 #调用sleep.setter下的
p.sleep #调用property下的
原文:https://www.cnblogs.com/gtq7512/p/11438289.html