赞
踩
""" 普通方法: 可以有参数,或者无参数,当场正常的函数调用 绑定方法: (1) 绑定到对象(自动传递参数为对象) (2) 绑定到类(自动传递参数为类) 静态方法: 无论是对象还是类,都可以调用,不会默认传递任何参数 """ class Dog(): name = "旺财" # 普通方法 def jiao(): print("小狗哇哇哇的叫唤") # 绑定方法(对象) def eat(self): print("小狗喜欢吃骨头") # 绑定方法(类) @classmethod def tail(cls): print(cls) print("小狗看到主任喜欢摇尾巴") #静态方法 @staticmethod def jump(num): print("小狗喜欢接飞盘") obj = Dog() 普通方法 (无参方法只能类调用) obj.jiao() error Dog.jiao() 绑定方法 (一般用对象调用) obj.eat() #(推荐) Dog.eat(12356) 绑定方法(类) """系统自己把类当成参数进行传递""" Dog.tail() #(推荐) obj.tail() 静态方法 (不会默认传递任何参数,如果有参数,当成普通方法调用即可.) obj.jump(1) Dog.jump(2) 在类外,为对象添加成员方法,默认皆是静态方法. obj.func = lambda : print(123) obj.func()
"""
property 可以把方法变成属性使用
作用: 控制属性的获取,设置,删除操作,
变相的增加成员的安全性.可以通过自定义逻辑对成员进行控制
自动触发: 要求:是同一个名字
获取 @property
设置 @属性名.setter
删除 @属性名.deleter
"""
class MyClass(): def __init__(self,name): self.name = name @property def username(self): return self.name # pass @username.setter def username(self,val): print(112233) val = "朴仁猛" self.name = val # pass @username.deleter def username(self): # 如果发现有删除行为,可以在这个方法中拒绝删除 # pass del self.name obj = MyClass("小芳") 获取属性 (自动触发获取方法 @property) print(obj.username()) print(obj.username) 设置属性 (自动触发设置方法) val形参自动接收设置的值 obj.username = "朴仁猛" print(obj.username) 删除属性 del obj.username print(obj.username) error
class MyClass(): def __init__(self,name): self.name = name # 获取 def get_username(self): return self.name # 设置 def set_username(self,val): # val = "朴仁猛" self.name = val # 删除 def del_username(self): # 如果发现有删除行为,可以在这个方法中拒绝删除 del self.name # 顺序必须按照 获取 -> 设置 -> 删除 的参数进行传递 username = property(get_username,set_username,del_username) obj = MyClass("朴飘乐") # 获取 print(obj.username) # 设置 obj.username = "朴一生" print(obj.username) # 删除 del obj.username print(obj.username) #error 被删掉了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。