WEEK7:面向对象编程进阶

  • 面向对象高级语法部分
    • 静态方法、类方法、属性方法
      • 静态方法 @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
    • 类的特殊方法
    • 反射
  • 异常处理
  • Scoket开发基础

猜你喜欢

转载自www.cnblogs.com/JYLCSS/p/10992875.html