Python自学个人知识点记录11---类和对象

1.封装:将数据放在一个列表或其他序列字典中是基于数据层面的封装,将常用的代码段打包成一个函数是基于语句层面的封装,而对象就是这两种封装的合一。对象是模拟真实世界(例如一只龟静态数据有颜色、体重等,动态数据有爬、跑等)把数据和代码都封装到一起,即对象=属性+方法;

2.创建一个对象也叫做类的实例化,举例写一个类class Turtle:在其中可以放上属性和方法(及函数),(注意这里的方法里的参数如果写了self,类似def climb(self),其中的self就相当于this,调用的时候可以不用写,直接调用tt.climb()),然后tt = Turtle(),此处tt即对象,可以调用类里的属性和方法,例如tt.color,就会输出在类里设定的属性color=green的赋值green;

3.面向对象:OO=Object Oriented,特点:

  ①封装:封装了属性及方法,封装是一种信息隐蔽技术,使得信息更加安全;

  ②继承:子类自动共享父类的属性和方法的机制,举例:

>>> class MyList(list):
    pass

>>> list2 = MyList()
>>> list2.append(5)
>>> list2.append(3)
>>> list2
[5, 3]
>>> list2.sort()
>>> list2
[3, 5]

  ③多态:不同对象对同一方法响应不同的行动,举例:

>>> a = A()

>>> b = B()
>>> a.fun()
我是小A
>>> b.fun()
我是小B

4.self:python的self相当于C++的this指针;

5.继承:calss DerivedClassName(BaseClassName);被继承的是父类,子类可以使用父类的属性和方法,举例:

>>> class Parent:
    def hello(self):
        print("正在调用父类的方法")

        
>>> class Child(Parent):
    pass     #pass就是一个占位符

>>> p=Parent()
>>> p.hello()
正在调用父类的方法
>>> c=Child()
>>> c.hello()
正在调用父类的方法;

注意:如果子类中定义与父类同名的方法或属性,则会自动覆盖父类对应的方法或属性;

6.想要不覆写父类方法,有两个办法,一是在子类的同名方法中调用父类的该方法,二是使用super()函数,举例重名方法叫做a(),则在子类的a()方法里写super.a()就可以了;

7.python支持多重继承,即可以继承多个父类,class drivedclassname(base1,base2,base3);

8.与类和对象相关的一些BIF(内置函数):

  ①issubclass(class,classinfo),判断class是否是classinfo子类,如果是则返回true,需要注意:这是非严格的检查,首先一个类是被认为是其自身的子类,第二点classinfo可以是类对象组成的元组,只要class是其中任何一个候选类的子类,则返回True,其余情况则抛出typeError,记住issubclass(A,object)也是返回的True;

  ②isinstance(object,classinfo),检查object是否是类classinfo的实例对象,同样也可传入由类对象组成的元组;

  ③hasattr(object,name),attr=attribute属性,测试一个对象里面是否有指定的属性,举例:

>>> class C:
    def __init__(self,x=0):
        self.x=x

        
>>> c1 = C()
>>> hasattr(c1,'x')
True
注意属性名需要被引号框起来,否则会报错;

  ④getattr(object,name[,default]),返回name属性的值,如果不存在该name,如果设置了default默认值,则返回默认值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值