- 浏览: 2652507 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
__getattr__
当没有属性时被触发,hession-py使用__getattr__来发送命令。
但如果属性存在就不会触发此方法,比如o.photo。这时候可以通过__getattribute__来实现:
全部代码:
参考:
http://docs.python.org/reference/datamodel.html
http://stackoverflow.com/questions/371753/python-using-getattribute-method
http://stackoverflow.com/questions/3278077/difference-between-getattr-vs-getattribute-in-python
当没有属性时被触发,hession-py使用__getattr__来发送命令。
class Obj(object): photo = "hello" def __getattr__(self, name): print name return _Method(self.__invoke, name) def __invoke(self, method, params): print 'invoke' class _Method: def __init__(self, invoker, method): self._invoker = invoker self._method = method def __call__(self, *args): return self._invoker(self._method, args) o = Obj() o.hello o.hello()
但如果属性存在就不会触发此方法,比如o.photo。这时候可以通过__getattribute__来实现:
class Obj(object): photo = "hello" def __getattribute__(self, name): print '1'+name #return _Method(self.__invoke, name) return object.__getattribute__(self, name) def __invoke(self, method, params): print 'invoke' class _Method: def __init__(self, invoker, method): self._invoker = invoker self._method = method def __call__(self, *args): return self._invoker(self._method, args) o = Obj() o.photo
全部代码:
class Obj(object): photo = "hello" def __getattribute__(self, name): print '1'+name #return _Method(self.__invoke, name) return object.__getattribute__(self, name) def __getattr__(self, name): print '2'+name return _Method(self.__invoke, name) def __invoke(self, method, params): print 'invoke' class _Method: def __init__(self, invoker, method): self._invoker = invoker self._method = method def __call__(self, *args): return self._invoker(self._method, args) o = Obj() print o.photo
参考:
http://docs.python.org/reference/datamodel.html
http://stackoverflow.com/questions/371753/python-using-getattribute-method
http://stackoverflow.com/questions/3278077/difference-between-getattr-vs-getattribute-in-python
发表评论
-
python读取图片exif信息
2014-11-06 10:53 2400f = open("/home/admin/tlo ... -
Python程序的执行原理
2014-04-14 15:44 17231. 过程概述 Python先把代码(.py文件)编译成字 ... -
如何创建一个短链服务
2013-12-26 16:23 0参考: http://stackoverflow.com ... -
python 解析命令参数(argument)组件argparse
2013-12-11 17:35 1400参考: http://youngsterxyf.githu ... -
pyhon命令行工具optparse
2013-11-10 16:27 1028使用python optparse 可以创建命令行工具,下面 ... -
Python在豆瓣的应用
2013-10-21 10:46 1194Python在豆瓣的应用,hongqiangning分享 ... -
用python爬虫抓站的一些技巧总结
2013-10-10 14:12 1680学用python也有3个多月了,用得最多的还是各类爬虫 ... -
python小技巧
2013-10-10 11:50 7321. 声明长度256的数组 a=[0]*256 ... -
使用tesseract-ocr破解网站验证码
2013-10-09 10:25 1212原文:使用tesseract-ocr破解网站验证码 ... -
和豆瓣CMGS交流
2013-06-20 17:36 5838蒋云鹏: 在?CMGS: 在蒋 ... -
python乱码问题('ascii' codec can't encode character u'\u4e2d' in position 0)
2013-05-20 19:03 4245>>> k = u'中' >> ... -
python shell 交互模式
2013-04-28 22:17 1628python 通过code模块可以很容易的进入交互模式: ... -
jython和gunicorn性能测试对比
2013-04-13 13:03 1291helloworld,笔记本上: gunicorn ... -
python的mysql客户端-MySQLdb
2013-04-04 10:13 1153平时的主要编程语言是Java,开发时也主要用Mysql,经常 ... -
Python几种并发实现方案的性能比较
2013-03-18 21:14 2956原文:http://www.elias.cn/P ... -
python汉字和Unicode码(utf-8)之间的转换(Pack/Unpack)
2013-03-18 21:13 1642保证你要转换的字符串编码为UTF8,如果不是,请iconv ... -
python反序列化的坑
2013-01-06 18:06 1278今天遇到python一个坑,调用memcached的get_m ... -
sqlalchemy connection pool.py 源代码
2012-12-29 22:58 2235把 sqlalchemy pool源代码copy下来,有空看看 ... -
SQLAlchemy简单介绍
2012-12-28 22:41 0文档参考:http://docs.sqlalchemy.org ... -
pymysql简单使用
2012-12-28 12:38 2117import pymysql conn = pymysq ...
相关推荐
### 详解 Python 中 `__get__` 和 `__getattr__` 与 `__getattribute__` 的区别 在 Python 编程语言中,对象的属性访问机制是非常灵活且强大的。当我们试图通过点号(`.`)操作符去访问一个对象的属性时,Python 会...
在Python中,`__getattr__` 和 `__getattribute__` 都是用来处理对象属性访问的特殊方法,但它们在何时以及如何被调用上有显著的区别。了解这些区别对于编写更灵活、更具动态特性的代码至关重要。 首先,`__getattr...
在Python编程语言中,有一些特殊的内置方法被称为“魔法函数”(Magic Methods),它们通常以两个下划线开头和结尾,例如`__getattr__`和`__getattribute__`。这两个魔法函数都涉及到对象属性的访问,但它们在处理不...
本文将深入探讨Python中的一些核心方法,这些方法不仅有助于更好地管理类和对象的行为,还能增强代码的灵活性与扩展性。 #### 1. 对象生命周期管理 - **`__init__` 方法**:初始化方法,在创建一个新对象时自动...
class Book(object): def __setattr__(self, name, value): if name == ‘value’: object.__setattr__(self, name, value – 100) else: object.__setattr__(self, name, value) def __getattr__(self, name)...
9. **其他特殊方法**:如`__getattr__`(在找不到属性时调用)、`__getattribute__`(每次访问属性时调用)、`__call__`(使对象可像函数一样调用)等。 在压缩包`demo_special-method-in-class`中,可能包含了一些...
另外,`__getattr__`和`__getattribute__`方法的行为也有所调整,以提高类的灵活性。 在函数和类的定义上,Python 3.8.0允许在函数或方法定义后添加类型注解,如`def func(a: int) -> str:`,这为代码的自我文档化...
5. **行级执行历史**:`__getattr__`和`__getattribute__`方法现在可以查看调用堆栈,有助于调试。 6. **安全的`os.rename()`**:在某些情况下,`os.rename()`现在可以原子地替换现有文件,降低了数据丢失的风险。 ...
6. **`__getattr__`和`__getattribute__`改进**:这两个方法现在可以处理更多情况,包括未定义的属性访问,为自定义类的行为提供了更大的灵活性。 7. **行尾空白处理**:Python 3.7的标准解释器在读取源代码时,会...
4. `__getattr__` 和 `__getattribute__` 方法的改进,使得动态属性访问更加灵活。 综上所述,Python 3.6.5 版本因其稳定性、性能优化以及对深度学习框架的良好支持,成为了众多开发者的选择。如果你正在进行深度...
在Python编程中,XML是一种常用的数据交换格式,用于存储和传输结构化数据。要解析XML文档并获取其中的节点值,通常需要使用Python的内置库`xml.dom.minidom`。本文将详细介绍如何使用这个库来获取XML文档中的任意...
7. **`__getattr__`和`__dir__`的改进**:对于`__getattr__`,如果找不到属性,会先调用`__getattr__`,再尝试`__getattribute__`。`__dir__`现在会包含`__getattr__`可能返回的属性名。 8. **`os.replace()`和`os....
5. **元编程**:利用Python的反射特性,如`__getattr__`、`__getattribute__`等方法,可以实现动态改变对象的行为,创建更灵活的代码结构。 6. **异常处理**:Python的异常处理机制能帮助我们编写健壮的程序,通过`...
9. **新的`__getattr__`和`__getattribute__`方法**:这两个方法在处理属性访问时提供了更多灵活性,允许在对象没有特定属性时进行动态行为定义。 10. **性能提升**:Python 3.6在内部实现上进行了优化,提高了解释...
8. `__getattr__`和`__getattribute__`方法的改进,使得动态属性访问更加灵活和可控。 9. `os`模块新增了`os.replace()`和`os.rename()`函数,提供原子性的文件重命名操作,这对于并发环境中的文件操作至关重要。 ...
以上只是Python 3.5.2的部分亮点,完整的官方API文档(HTML格式)会详细涵盖每个模块、函数、类和方法的用法,是学习和开发过程中不可或缺的参考资源。通过深入阅读和实践,开发者能够充分利用这些特性来编写高效、...
### Python 类特性描述 ...总结来说,Python 的特殊方法极大地丰富了类的功能,并允许开发者实现更复杂的逻辑和更灵活的对象行为。了解并熟练运用这些特殊方法对于深入学习 Python 编程具有重要意义。
1.4 下载和安装Python 1.5 运行Python 1.5.1 命令行上的交互式解释器 1.5.2 从命令行启动脚本 1.5.3 集成开发环境 1.5.4 其他的集成开发环境和执行环境 1.6 Python文档 1.7 ...