python中类和对象

   Class(类):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。

   对象是类的实例。这里表示 类里可以有多个属性,也可以有多个方法。同时也有自己的字段。

这里的属性 官方语言叫做 类变量,属于这个类的公用部分,谁都可以来用,所以通常不作为实例变量使用,就是一个符号。而方法,则是在类中!

 

1. 类的继承(直接在类名后面括号里卖弄写入要继承的类名)

 

子类会继承父类的所有的功能!注 (如果子类中定义与父类同名的方法或者属性,则会自动覆盖覆盖父类相对应的方法或属性)

 

注意: 子类中在对  __init__ 内的变量在其他任何方法上做修改,内外值都会随着改变
                 子类重写了父类的属性或者方法后,父类的信息都会改变
            
多重继承:  class A  classB  c = classC(A,B) 顺序按照AB 顺序来(多重继承代码容易混乱,应尽量避免使用)
     Super() 调用显示父类的属性或函数  在重写的时候调用可以延续父类的属性或方法,子类可选是否借用父类
              格式为: super(父类,参数self).__init__() 父类函数
     静态方法: 使用前提,需要一个参数不能让别人进行修改,在非特定环境下该静态变量或方法外部修改无效,只有在特定环境下修改才可行
 

绑定:python严格要求方法需要有实例才能被调用,这种限制其实就是python所谓的绑定概念。

  1、issubclass(class, classinfo)

    a、一个类被认为是其自身的子类

    b、classinfo可以是类对象组成的元组,只要class与其中任何一个候选子   类,则返回True

  2、isinstance(object,classinfo)

    a、如果第一个参数不是对象,则永远返回False

    b、如果第二个参数不是类或者由类对象组成的元组,会抛出一个TypeError  异常。

  3、hasattr(object,name):测试一个对象是否有指定的属性

  4、getattr(object, name[, default]):返回对象指定的属性值

  5、setattr(object,name,value):设置指定属性的值

  6、delattr(object,name):删除对象中指定的属性,如果属性不存在抛出  异常。

2、多态(不同的对象对同一类方法的不同响应

  多态: 著名的鸭子测试: 当我们看到一只鸟走起来像鸭子,游泳起来像鸭子,叫起来也像鸭子,那么这只鸟就可以被称为鸭子
                 意思是:一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前的方法属和属性的集合决定的。
                 注意: 类型检查是毁掉多态的利器   type() isinstance()  issubclass()  慎用!
            
        
        类的封装和私有化: 方法 或者属性 前面添加上 __ 即可 这样的话外部无法访问,但可以通过方法来访问
                如果想在外部访问私有属性或方法前添加上 @property 可以直接访问 对象.属性
 

3、self(对象的方法中会传递一个self参数

  由一个类可以生成多个对象,对象之间都极为相似,来源于同一个类,不同的对象调用方法时传递self参数告诉python当前

4、python的魔法方法(总是被双下划线包围)

  1、__init__(self, param1, param2, ...):类似于java中的构造方法

      ps:init方法不能有返回值

  2、__new__(cls[,...]):对象实例化时调用的方法,返回一个类对象

     3 、__del__(self):当对象被销毁的时候(垃圾回收机制)自动调用

5、python定义私有属性或方法

  在python中定义私有的变量只需要在变量名或函数名前面加上"__"两个下划线,那么这个函数或变量就会变成私有的了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值