2019-06-27

类小结:
类的首位字母必须大写:
实例化:对象名.成员名
isinstance()用来测试一个对象是否是某个类的实例:isinstance(对象名,类名)
self:
所有实例的方法都必须有一个self参数,且为第一形参,代表对象本身。但是调用对象方法时并不需要传递这个参数。
(属性)——>(成员)
(实例)——>(对象)
属性:类属性,实例属性
实例属性: init()中定义的,定义使用都需要self 作为前缀。对象名访问
类属性:所有方法之外定义的属性成员。类名和对象名访问
可以动态地为类和对象增加成员。
eg:
class Car:
price=1000#类属性
def init(self,c):
self.color = c#实例属性
car1 = Car('red')
Car.price = 10000
Car.name = 'qq'
print(car1.color,Car.name,Car.price)
方法:与特定实例绑定的函数,调用时对象本身作为第一个参数传递过去(self)
私有成员:__XXX 外部不能直接访问,需要调用对象的公有成员来访问(为了数据封装和保密)
保护成员:_XXX(父类子类的对象成员鞥访问)
XXX:特殊成员
_XXX: 私有成员
外部调用: 对象名.
类名__XX
内部调用:self.__XX
方法:公有,私有,静态,类
静态方法和类方法:类名和对象名可以调用,调用对象的成员(类名.XX或者cls.XX)
属性:
只读:
@property
def value(self):
return self.__value
可读可写不可删除
class Test:
def init(self,value):
self.__value = value
def __get(self):
return self.value
def __set(self):
self.value = v
value = property(__get,__set)
def show(self):
print(self.__value)
t = Test(3)
print(t.valve)
重载:
构造函数:init()用来设置初值,自动调用,定义默认值实现重载。
析构函数:del()删除对象回收空间,自动调用执行。
继承:
子类只能继承父类的公有成员。super(),父类名.方法名()来调用父类的方法。
eg:
class Teacher(Person):
def init(self,name='',age = 30,sex = 'man',department = 'Computer')
super(Teacher,self).init(name,age,sex)
Person.init(self,name,age,sex)

你可能感兴趣的:(2019-06-27)