-
def __getattribute__(self,name):
print('get')
return self.__dict__[name]
造成无限递归:self.__dict__[name]操作为调用def __getattribute__(self,name)
应改为:return super(animal,self).__getattribute__(name)查看全部 -
setattr(self,name,value)
只要对象的属性被变动就会调用改方法
如:a为对象
a.age=56
该操作会调用setattr(),name这里为age这个属性,value为56表示将这个属性改为56查看全部 -
property:方法后不用()
classmate:通过类名调用(而不是类的实例,对象)查看全部 -
加两个__:编译器把变量改名字查看全部
-
面向对象
类和对象
属性和方法
继承
定义类 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__
查看全部 -
dir返回对象属性tape访问对象类型查看全部
-
_del_与_init_对应查看全部
-
封装性继承双继承多态,类里面分为属性和方法查看全部
-
__setattr__
查看全部
举报