标签:delete 技术分享 bin 全局变量 isp SM print nbsp 使用
静态方法
a. 创建方法时不传入参数self.
b. 若一定要传入参数, 调用该方法时需要把实例化对象传给自己, 才能执行.
#!/usr/bin/python # -*- coding: utf-8 -*- """ 静态方法: 静态方法只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性. 静态方法的作用: 1. 把一个方法变成静态方法, 相当于切断了它和类的关联, 不会自动传self. 就是一个函数. a. 创建方法时不传入参数self. b. 若一定要传入参数, 调用该方法时需要把实例化对象传给自己, 才能执行. 2. 该方法必须通过类名.方法()来调用. """ class Dog(object): def __init__(self, name): self.name = name @staticmethod def eat(): # TODO 这样如果方法需要参数时岂不是不太方便? print("a is eating") @staticmethod def eat(self, food): # 在调用该方法时, 必须把实例传给自己, 不会自动传入self.即 d.eat(d, "包子") print("%s is eating %s" %(self.name, food)) d = Dog("ChenRongHua") d.eat("包子")
类方法
""" 类方法: 只能访问类变量(全局变量), 不能访问实例变量 """ class Dog(object): n = 333 def __init__(self, name): self.name = name @classmethod def eat(self): # 在调用该方法时, 必须把实例传给自己, 不会自动传入self.即 d.eat(d, "包子") print("%s is eating %s" %(self.n, ‘dd‘)) d = Dog("ChenRongHua") d.eat()
属性方法
把一个方法变成一个静态属性. 调用该方法时不能加(), 要像调用一个变量时直接实例化对象名.方法名.
调用该方法时不能传参数(因为没有了())
可以赋值.
需要再写一个同名函数(这个函数必须放在注释为property函数的下面.), 并加注释@方法名.setter. (有点像java中私有变量的set方法)
实例化后给eat赋值
要删掉该属性, 需要再写一个同名方法.注释是@方法名.deleter.
""" 属性方法: 1. 把一个方法变成一个静态属性. 调用该方法时不能加(), 要像调用一个变量时直接实例化对象名.方法名. 2. 调用该方法时不能传参数(因为没有了()) 3. 可以赋值. a. 需要再写一个同名函数(这个函数必须放在注释为property函数的下面.), 并加注释@方法名.setter. (有点像java中私有变量的set方法) b. 实例化后给eat赋值 4. 要删掉该属性, 需要再写一个同名方法.注释是@方法名.deleter. """ class Dog(object): def __init__(self, name): self.name = name self.__food = None @property # 把一个方法变成一个静态属性 def eat(self): # 在调用该方法时, 必须把实例传给自己, 不会自动传入self.即 d.eat(d, "包子") print("%s is eating %s" %(self.name, self.__food)) @eat.setter # 此同名方法必须写在上一个eat()方法下面. 修改一个属性. def eat(self, food): print("set to food: %s" % food) self.__food = food @eat.deleter # 删除一个属性. def eat(self): del self.__food print("删完了") d = Dog("ChenRongHua") # d.eat() # 返回‘NoneType‘ object is not callable d.eat # 返回ChenRongHua is eating dd d.eat = "包子" # 必须有@eat.setter方法, 才能这样赋值, 否则报错. d.eat # 返回ChenRongHua is eating 包子
类的特殊成员方法
class Dog(object): """ 这是一个描述信息 """ print Dog.__doc__ # 返回" 这是一个描述信息"
标签:delete 技术分享 bin 全局变量 isp SM print nbsp 使用
原文地址:https://www.cnblogs.com/cheese320/p/9206968.html