Python 面向对象【2】

组合
适合没干系的横向类,比如池塘,乌龟,鱼】
 把类的实例化放到新类里面
 
 

属性名和方法名相同,属性会覆盖掉方法
 

绑定

方法需要实例才能被调用!! 这种限制即绑定

用self接受绑定
 
class Ball():
  def xx(self,a):
    print(...)
b = Ball();
b.xx('123');

删除del Ball类时,b.xx('123')仍然可以调用

通过绑定使用实例属性,类属性通常用来跟踪相关的值
类中定义的属性和方法是静态变量,类被删除,这些仍然存在
 
 
 
 
类和对象相关的内置函数BIF
 

issubclass(a,b) ---如果a是b的子类,返回true

1.一个类,自己是自己的子类
2.b可以是类对象组成的元组,只要a是其中任何一个的子类,返回true
 

isinstance(a,b) --a是实例对象,b是类  a是否是b的实例对象

1.b页可以是类或类元组
2.如果不是类/类元组 返回TypeError异常
3.a不是实例对象,永远false
 

hasattr(对象,'属性名') ---测试对象是否有属性
getattr(对象,'name'[,"default"]) ---返回对象指定的属性值,如果该属性不存在,【如果设置了default,则打印之】,否则抛出TypeError异常
setattr(对象,'name',value) ---设定对象属性的值,如果该属性不存在,新建
delattr(对象,'name') ---存在,则删除,不存在,抛出AttributeError异常

property(fget=None//获得属性的方法,fset=None//设置,fdel=None//删除,doc=None) ---设置一个新的属性,去定义已有的属性
 
原文地址:https://www.cnblogs.com/expedition/p/10695411.html