- 面向对象高级语法部分
- 静态方法、类方法、属性方法
- 静态方法 @staticmethod #此方法实际上跟类已经没什么关系了,此时就是单纯的函数,无法直接调用类变量,但是可以通过传进去实例调用类变量。静态方法只是名义上归类管理,实际上在静态方法里访问不了类或者实例中的任何属性
1 import os 2 3 class Dog(object): 4 def __init__(self,name): 5 self.name = name 6 7 @staticmethod #此方法实际上跟类已经没什么关系了,此时就是单纯的函数,无法直接调用类变量和实例变量,但是可以通过传进去实例调用实例变量 8 def eat(self): 9 print("%s is eating %s" %(self.name,'dd')) 10 11 def talk(self): 12 print("%s is talking"% self.name) 13 d = Dog("ChenRonghua") 14 d.eat(d) 15 d.talk()
- 类方法 @classmethod #只能访问类变量,不能访问实例变量
1 import os 2 3 class Dog(object): 4 name = "huazai" 5 def __init__(self,name): 6 self.name = name 7 @classmethod #只能访问类变量,不能访问实例变量 8 def eat(self): 9 print("%s is eating %s" %(self.name,'dd')) 10 11 def talk(self): 12 print("%s is talking"% self.name) 13 14 15 d = Dog("ChenRonghua") 16 d.eat()
- 属性方法 @property #把一个方法变成静态属性,调用的时候不需要加(),无法传递参数
1 import os 2 3 class Dog(object): 4 '''这个类是描述狗这个对象的''' 5 6 def __init__(self,name): 7 self.name = name 8 self.__food = None 9 10 @property #把一个方法变成静态属性,调用的时候不需要加() 11 def eat(self): 12 print("%s is eating %s" %(self.name,self.__food)) 13 @eat.setter 14 def eat(self,food): 15 print("set to food:",food) 16 self.__food = food 17 @eat.deleter 18 def eat(self): 19 del self.__food 20 print("删完了") 21 22 d = Dog("ChenRonghua") 23 d.eat 24 d.eat="baozi" 25 d.eat 26 del d.eat 27 d.eat
- 静态方法 @staticmethod #此方法实际上跟类已经没什么关系了,此时就是单纯的函数,无法直接调用类变量,但是可以通过传进去实例调用类变量。静态方法只是名义上归类管理,实际上在静态方法里访问不了类或者实例中的任何属性
- 类的特殊方法
- 反射
- 静态方法、类方法、属性方法
- 异常处理
- Scoket开发基础
WEEK7:面向对象编程进阶
猜你喜欢
转载自www.cnblogs.com/JYLCSS/p/10992875.html
今日推荐
周排行