Day 14 :类与对象

类与对象

属性+方法=对象

对象
类名+() 类名 以大写字母开头

面向对象

封装 属性(变量 方法) 信息隐蔽技术

>>>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

  1. issubclass(class,classinfo)
    classinfo可以是类对象组成的元祖,只要class与其中任何一个候选类的子类,则返回true
  2. isinstance(object,classinfo)
    检查一个实例对象是否属于一个类的,如果第一个参数不是对象,则永远返回false。如果第二个参数不是类或者由类对象组成的元祖,会抛出一个typeerror异常
  3. hasattr(object,name)
  4. getattr(object,name[,default])
  5. setattr(object,name,value)
  6. property(fget=None,fest=None,fdel=None,doc=None)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值