面向对象
类和对象
属性和方法
继承
定义类 class
定义属性和方法
继承 (object)
magic method
构造函数 new del
运算符
类的展现
类的属性访问 删除 设置 查询(注意无限递归)
设置对象属性
死循环(超过1000报错) def __setattr__(self,name,value): setattr(self.name,value) 正确的调用方法 def __setattr__(self,name,value): self.__dict__[name] = value __getattr__(self,name): __getattribute__(self,name):每次调用都会执行,容易递归 __delattr__(self,name)删除属性
Magic Method
__cmp__(self,other) 所有的比较情况
__eq__(self,other) 等于
__lt__(self,other) 小于
__gt__(self,other) 大于
运算
__add__(self,other) 加
__sub__(self,other) 减
__mul__(self,other) 乘
__div__(self,other) 除
逻辑运算
__or__(self,other) 或
__and__(self,other) 与
判断数据是否为int类型
if isinstance(age,int): self.age = age else: raise Exception('age must be int')
用python定义类
class __init__() # 构造函数,将类的属性进行设置 ... ..... __del__() # 析构函数,当一个对象被python回收会调用此函数
两个内建函数
dir() 返回一个对象的属性
type() 获取对象的类型
在Python2.x中,
class OldStyle:
pass
和
class NewStyle(object):
pass
是不同的。
但是在Python3.x中,这两种类定义是相同的。
两个内建函数dir()和type()
dir():返回一个对象的属性;
type():获取一个对象的类型。
python a
python私有属性的定义方式如下:
python没有访问控制
python 3 除法已经变成__truediv__
__setattr__
多态
继承
方法重写
用super( )调用父类的方法
函数是直接调用函数名调用的
方法是类的一部分
球迷Python程序员
Object Oriented Programming
在析构函数中定义类的属性
调用父类里面的方法
函数与方法的区别
构造对象时 把属性的值传进去
那么每个对象的属性值都不太一样
1.没有下划线 公开访问
所有类里面的属性都是一样的
返回一个对象
获取对象的类型