• python概念-各类绑定的概念和property的变态一面


     1 # 编辑者:闫龙
     2 # 1.什么是绑定到对象的方法,如何定义,如何调用,给谁用?有什么特性
     3 #在类中定义的(self)方法都是绑定到对象的方法
     4 #定义
     5 class a:
     6     def b(self):#绑定到对象的方法
     7         pass
     8 #调用:
     9 c = a()
    10 c.b()#调用a类中绑定到对象c的b(self)方法
    11 #既然是绑定到对象的方法,当然是给实例化之后的对象使用了
    12 #当对象调用方法时,对象会将自己当做第一个参数传递给方法
    13 
    14 # 2.什么是绑定到类的方法,如何定义,如何调用,给谁用?有什么特性
    15 #静态方法和类方法都是绑定到类的方法
    16 #静态方法定义:
    17 class ClassStaticFunc:
    18     @staticmethod#定义一个静态方法需要调用的装饰器staticmethod
    19     def StaticFunc():#被staticmethod修饰过的StaticFunc方法就是一个静态方法
    20         pass
    21 #调用:
    22 ClassStaticFunc.StaticFunc()#无需实例化直接类名打点儿调用类中的静态方法
    23 #静态方法是让类去调用的方法
    24 #需实例化直接类名打点儿调用类中的静态方法,静态方法可以被实例化的对象调用,但是一般不这么使用
    25 #类方法定义:
    26 class ClassFunc:
    27     @classmethod#定义一个类方法需要调用的装饰器classmethod
    28     def ClassMethod(cls):#被classmethod修饰过的ClassMethod方法就是一个类方法
    29         pass
    30 #调用:
    31 ClassFunc.ClassMethod()#无需实例化直接类名打点儿调用类方法
    32 #类方法顾名思义是与类绑定的方法,一定是给类调用的方法
    33 #当类调用类方法时,会将当前调用方法的类当做第一个参数传递到方法中
    34 # 3.什么是解除绑定的函数,如何定义,如何调用,给谁用?有什么特性
    35 #定义在类的内部,并且被staticmethod修饰过的方法
    36 #定义:
    37 class NoBandFunc:
    38     @staticmethod
    39     def NoBang(a,b,c):
    40         pass
    41 #调用:
    42 nbf = NoBandFunc.NoBang(1,2,3)
    43 #or:
    44 nbfs = NoBandFunc()
    45 nbf1 = nbfs.NoBang(1,2,3)
    46 #解除绑定方法不在自动传值
    47 
    48 # 4.什么是property,如何定义,如何使用,给谁用,什么情况下应该将一个属性定义成property,有什么好处?
    49 #是一个将方法隐藏变更调用方法的方式,让用户看起来是在调用属性而不是方法,property修饰过的方法,会产生该方法的setter,del方法用来修改和删除属性
    50 #定义
    51 class PropertyClass:
    52     def __init__(self,name):
    53         self.__Name = name
    54     @property
    55     def PropertyFunc(self):
    56         print(self.__Name)
    57     @PropertyFunc.setter
    58     def PropertyFunc(self,name):
    59         self.__Name = name
    60         print(self.__Name)
    61     @PropertyFunc.deleter
    62     def PropertyFunc(self):
    63         del self.__Name
    64 #调用:
    65 pc = PropertyClass("egon")
    66 pc.PropertyFunc
    67 pc.PropertyFunc("egon_SomeBody")
    68 del pc.PropertyFunc
    69 #一般在__属性的情况下使用property,这样可以有效的隐藏,展示,控制__属性对用户的影响
  • 相关阅读:
    Linux系统下/tmp目录文件重启后自动删除,不重启自动删除10天前的/TMP的文件(转)
    Docker 镜像加速器
    RabbitMQ集群和高可用配置
    k8s如何管理Pod(rc、rs、deployment)
    微信开放平台开发(1) 语义理解
    微信开放平台开发(2) 微信登录
    微信电话
    微信支付开发(1) 微信支付URL配置
    微信支付开发(2) 微信支付账号体系
    微信支付开发(3) JS API支付
  • 原文地址:https://www.cnblogs.com/DragonFire/p/6748067.html
Copyright © 2020-2023  润新知