类与对象
属性+方法=对象
对象
类名+() 类名 以大写字母开头
面向对象
封装 属性(变量 方法) 信息隐蔽技术
>>>list 1=[2,3,5,7,1]
>>>list.sort()
>>>list1
[1,2,3,5,7]
>>>list.append(9)
>>>list1
[1,2,3,5,7,9]
继承 子类自动共享父类之间的数据和方法
如果子类定义与父类同名的方法或属性,则会自动覆盖父类对应的方法或属性
>>>list 1=[2,3,5,7,1]
>>>list.sort()
>>>list1 [1,2,3,5,7]
>>>list.append(9)
>>>list1 [1,2,3,5,7,9]
>>> class Mylist(list):
pass
>>>list2 = Mylist()
>>>list2.append(5)
>>>list2.append(3)
>>>list2.append(7)
>>>list2 [5,3,7]
>>>list2.sort()
>>>list2 [3,5,7]
多态
不同对象对同一方法响应不同的行动
>>> class A :
def fun(self):
print("我是小A...")
>>> class B :
def fun(self):
print("我是小B...")
>>> a = A()
>>> b = B()
>>>a.fun()
我是小A...
>>>b.fun()
我是小B...
self
指针
对象被调用时,对象自身会自动用第一个参数传给self 参数
>>>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('土豆')
>>>a.kick()
我叫球A,该死的,谁踢我...
>>>c.kick()
我叫土豆,该死的,谁踢我...
init(self)
公有 私有
name mangling 名字改编,名字重整
定义私有变量 在变量名前添加两个下划线"__"即可
访问
>>>class Person :
__name = 'we'
def getName(self):# 方法一
return self.__name
>>>p = Person()
>>>p.getName()
'we'
>>>p._Person__name #方法二 使用"_类名__变量名"
'we'
相关bif
- issubclass(class,classinfo)
classinfo可以是类对象组成的元祖,只要class与其中任何一个候选类的子类,则返回true - isinstance(object,classinfo)
检查一个实例对象是否属于一个类的,如果第一个参数不是对象,则永远返回false。如果第二个参数不是类或者由类对象组成的元祖,会抛出一个typeerror异常 - hasattr(object,name)
- getattr(object,name[,default])
- setattr(object,name,value)
- property(fget=None,fest=None,fdel=None,doc=None)