__getattriute__
# class Foo:
# def __init__(self,x):
# self.x = x
# def __getattr__(self,item):
# print("__getattr__")
# # return self.__dict__[item]
# def printer(self):
# print("lsdajfl")
#
# f1 = Foo(10)
# print(f1.x)
# f1.abc # 访问不存在的属性,触发__getattr__
# f1.printer()
# class Foo1:
# def __init__(self,x):
# self.x = x
# def __getattribute__(self,item):
# print("__getattribute__")
# # 由上边的例子我们可以看出,不管属性存在不存在都会执行
# # __getattribute__
# f1 = Foo1(10)
# print(f1.x)
# print(f1.abc) class Foo2:
def __init__(self,x):
self.x = x
def __getattr__(self,item):
print('执行__getattr__')
def __getattribute__(self,item):
print("执行__getattribute__")
def printer(self):
print(123) # 当两个都存在的时候,只会执行__getattribute__
# 而不执行__getattr__
f2 = Foo2(20)
f2.x
f2.xxx
# f2.printer()
# 当我们修改了__getattribute__方法时,本来有的方法也无法执行了
__getattriute__的更多相关文章
- python 面向对象高级应用(三)
目录: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__getattr__ 二次加工标准类型(包装) __ ...
随机推荐
- Python 判断文件是否存在,不存在则将名称写入指定文件
import os filename = '15464657761111111.pdf' pathDir = 'F:/tqcs/sr' # 判断文件是否存在 if os.path.exists(pat ...
- BZOJ 2119: 股市的预测 (Hash / 后缀数组 + st表)
转博客大法好 自己画一画看一看,就会体会到这个设置关键点的强大之处了. CODE(sa) O(nlogn)→1436msO(nlogn)\to 1436msO(nlogn)→1436ms #inclu ...
- 部署flask到阿里云服务器ECS
比较难的一点是:部署到云服务器上之后,通过公网没法访问. 这就要说回道 本地开发时的一个小细节:通过http://127.0.0.1:5000是可以访问的,但通过http://[本地ip]:5000是 ...
- Node.js 安装与开发
Node.js 简介 Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装.Node.js对一些 ...
- 一、基本的bash shell命令(基于Ubuntu实现)
一.基本的bash shell命令(基于Ubuntu实现) /etc/passwd文件包含了所有系统用户账户列表以及每个用户的基本配置信息. man命令 在想要查找的工具的名称前输入man命令,就可以 ...
- Centos 安装字体库 以及解决confluence 旧文档数据的乱码
首先,第一步我们需要执行以下的命令来安装字体管理工具: yum install -y fontconfig mkfontscale 然后我们到(Windows系统)“c:/windows/fonts ...
- 成员函数定义后面加 const 的意义
我们定义的类的成员函数中,常常有一些成员函数不改变类的数据成员,也就是说,这些函数是"只读"函数,而有一些函数要修改类数据成员的值.如果把不改变数据成员的函数都加上const关键字 ...
- 如何使用getattr运行单个函数
import sys def foo(): print("哈哈想不到吧") if __name__ == '__main__': getattr(sys.modules[__nam ...
- Java写入的常用技巧
一.批量写入 Java写入大量数据到磁盘/数据库等其它第三方介质时,由于IO是比较耗费资源的操作,通常采用攒一批然后批量写入的模式 //通常构造一个缓存池,一个限制指标,可以是内存大小也可以是时间 B ...
- C++入门经典-例9.1-函数模板,函数模板的作用,使用数组作为模板参数
1:函数模板不是一个实在的函数,因此编译器不能为其生成可执行的代码.定义函数模板只是一个对函数功能框架的描述,在具体执行时,将根据传递的实际参数决定其功能. 2:函数模板定义的一般形式如下: temp ...