Python面向对象-属性方法
2017-07-05 11:05
471 查看
# 类 # 包含属性和方法 # 属性包括实例变量和类变量 # 什么时候用到类变量: 中国人->国籍 # 私有属性: __name # 方法: # 构造方法 # 析构方法: 析构函数不管写不写都会执行 写相当于重构 不写:本身就有一个析构方法 # 对象 # 实例化一个类之后得到的对象 # 封装 # 把一些功能的实现细节不对外暴露 # 继承 实现关联和重用 # 代码的重用 # 单继承: # 多继承: # 2.7 经典类 深度优先搜索 新式类 广度优先 # 3.0 都是广度优先搜索 # 写成新式类 # 继承父类时 使用super写法: super(子类名称, self).__init__(父类的变量) #多继承时体现优势 # 多态 # 一种接口 多种实现 #animal基类 拓展猫狗等动物 # 组合的方式实现关联和重用: # self.person = Person(self.obj) #在类的init构造方法中直接实例化一个类来组合拓展 或者直接传入某对象 # 静态方法 # 只是名义上归类管理 实际上在静态方法里访问不了类或者类中的属性 # @staticmethod # 静态方法实际上和类没什么关系了,截断了和类之间的关联,只是类下面的一个参数; 和类之间的关系就是 要通过类名来调用 类的工具包 # @classmethod #类方法只能访问类变量不能访问实例变量 # @property #属性方法 把一个方法变成一个静态属性 ''' #静态方法 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("LL") d.eat("包子") ''' ''' #类方法 class Dog(object): n = 333 def __init__(self, name): self.name = name self.n = 444 @classmethod #类方法只能访问类变量不能访问实例变量 def eat(self, food): print("%s is eating %s" %(self.n, food)) d = Dog("LL") d.eat("包子") ''' #属性方法 class Dog(object): def __init__(self, name): self.name = name self.__food = None @property #属性方法 把一个方法变成一个静态属性 def eat(self): print("%s is eating %s" %(self.name, self.__food)) @eat.setter #给属性方法赋值 要写在属性方法的下面 def eat(self, food): print("set food:", food) self.__food = food @eat.deleter #给属性方法删除值 def eat(self): del self.__food print("删完了") d = Dog("LL") d.eat d.eat = "米田共" d.eat # del d.name #name属性被删除 # d.eat # del d.eat #属性方法删除 # d.eat
相关文章推荐
- Python学习笔记五(面向对象-类-方法-属性)
- python面向对象(七)属性方法的添加
- Python第九天 面向对象 类定义 类的属性 类的方法 内部类 垃圾回收机制 类的继承 装饰器
- Python3 面向对象——继承,重写,类属性与方法
- python面向对象—01-类、属性、方法
- python学习笔记13-python面向对象,属性,方法
- Python面向对象(二):成员变量,成员方法(属性)
- Python面向对象之静态属性、类方法与静态方法分析
- python面向对象--02特殊方法、特殊属性
- [Python]面向对象--属性和方法命名使用
- Python面向对象,类,继承,多态及鸭子类型,获取类的类型,方法和属性(类似java的反射)
- python 的面向对象的设置和获取属性的方法
- [Python进阶-3]面向对象,类,实例,属性,方法,类属性,类方法,内部属性
- python面向对象(七)属性方法的添加
- python面向对象-属性和方法
- PHP 面向对象之静态属性和静态方法
- 面向对象的 静态属性,静态方法 static 详解
- PHP面向对象------静态属性和方法
- 8、Python-方法、属性、迭代器
- Python基础教程——9魔法方法、属性及迭代器【总结】