静态方法,类方法,属性方法
1、全局变量:在模块内,在所有函数、类外面。
2、局部变量:在函数内,在类方法内(未加self修饰的)
3、静态变量:在类内,但不在类方法内。【共同类所有,值改变后,之后所有的实例对象也改变】
4、实例变量:在类方法内,用self修饰的变量。
静态方法
# -*- coding: utf-8 -*- ''' 声明静态方法使用注解:@staticmethod 静态方法通过类名进行调用 '''
class Dog(object): def __init__(self,name): self.name = name @staticmethod def eat(self,food): print("%s is eating... %s" %(self.name,food)) d = Dog("wangCai") Dog.eat(d,"baozi")
类方法:
# -*- coding: utf-8 -*- ''' 声明类方法使用注解: @classmethod 类方法只能访问类变量,不能访问实例变量 ''' class Dog(object): name="xiaoQiang" def __init__(self,name): self.name = name @classmethod def eat(self,food): print("%s is eating... %s" %(self.name,food)) d = Dog("wangCai") d.eat("baozi") #如果Dog 类中没有name属性将会报错
属性方法:
# -*- coding: utf-8 -*- ''' 声明属性方法使用注解: @property 属性方法:把一个方法变成一个静态属性 属性方法不能像属性一样调用del 进行删除 ''' class Dog(object): def __init__(self,name): self.name = name @property def eat(self): print("%s is eating... " %(self.name)) @property def run(self): print("%s is running %s" %(self.name)) #设置属性方法的参数 @run.setter def run(self,way): print("%s is running %s" %(self.name,way)) d = Dog("wangCai") d.eat #调用属性方法 #调用带参数的属性方法 d.run = "yuanZi" del d.eat
posted on 2017-11-29 16:13 gaizhongfeng 阅读(159) 评论(0) 编辑 收藏 举报