python---__getattr__\__setattr_重载'.'操作

#!coding:utf-8

class Person(object):
    def __init__(self,id):
        #定义一个名为ID的属性
        self.ID=id
    def __getattr__(self,attr):
        #__getattr__用于重载对象实例的‘.‘操作符,
        #如果.操作符调用的属性存在就直接返回属性;不然就调用__getattr__来返回
        print ‘in __getattr__‘
        if attr==‘Name‘:
            return ‘My name is hello world‘
        else:
            raise AttributeError,attr
    def __setattr__(self,attr,value):
        if attr==‘Name‘:
            #注意这个时间是不能对属性直接赋值的,要不然就是一个死循环了
            self.__dict__[attr]=value
        else:
            raise AttributeError,attr+‘not find‘

if __name__==‘__main__‘:
    p=Person(‘007‘)
    print p.ID
    print p.Name  #这里会调用__getattr__,因为实例并没有注册Name这个属性。
    p.A=1 #设置一个未知属性,从而引发异常。

python---__getattr__\__setattr_重载'.'操作

时间: 2024-10-14 15:14:06

python---__getattr__\__setattr_重载'.'操作的相关文章

Python中的切片操作

Python中的切片操作功能十分强大,通常我们利用切片来进行提取信息,进行相关的操作,下面就是一些切片的列子,一起来看看吧,希望对大家学习python有所帮助. 列如我们从range函数1-100中取7的倍数,函数及结果如下所示: >>> for i in range(1,100)[6::7]: print i 7 14 21 28 35 42 49 56 63 70 77 84 91 98 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>

Python 3 mysql 库操作

Python 3 mysql 库操作 一.基础相关知识 MySQL数据库基本操作知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_stu,相当于文件夹 表:student,scholl,class_list,相当于一个具体的文件 记录:1 刘海龙 324245234 22,相当于文件中的一行内容 二.SQL语言简介 SQL(Structured Query Language 即结构化查询语言) SQL语言主要用于存取数据.查询

python 的经常使用时间操作,取得当前时间等

我们先导入必须用到的一个module>>> import time设置一个时间的格式,以下会用到>>>ISOTIMEFORMAT=’%Y-%m-%d %X’看一下当前的时间,和其它非常多语言类似这是从epoch(1970 年 1 月 1 日 00:00:00)開始到当前的秒数.>>> time.time()1180759620.859上面的看不懂,换个格式来看看>>> time.localtime()(2007, 6, 2, 12,

[Python] Python 学习 - 可视化数据操作(一)

Python 学习 - 可视化数据操作(一) GitHub:https://github.com/liqingwen2015/my_data_view 目录 折线图 散点图 随机漫步 骰子点数概率 文件目录 折线图 cube_squares.py import matplotlib.pyplot as plt x_values=list(range(1, 5000)) y_values=[pow(x, 3) for x in x_values] plt.scatter(x_values, y_v

Python学习之--文件操作

Python中对文件操作可以用内置的open()函数 读文件 f=open('/home/test/test.txt','r') # 读模式打开文件 f.read() # 读取文件内容 除了正常的读取文件内容,一个常用的操作是判断文件内容是否为空,如下: if len(f.read())==0: # 如果文件内容为空 xxxx 判断一个文件或者路径是否存在,如下(这里需要在代码中导入os module: import os): file='/home/test/test.txt' dir='/h

python解析xml文件操作的例子

python解析xml文件操作实例,操作XML文件的常见技巧. xml文件内容: <?xml version="1.0" ?> <!--Simple xml document__chapter 8--> <book> <title> sample xml thing </title> <author> <name> <first> ma </first> <last>

Python mongoDB 的简单操作

#!/usr/bin/env python # coding:utf-8 # Filename:mongodb.py from pymongo import MongoClient,ASCENDING,DESCENDING import datetime # connection with mongoclient client=MongoClient() # getting a database db=client.test # getting a collection collection=d

用Python进行SQLite数据库操作

用Python进行SQLite数据库操作 -----转自:http://www.cnblogs.com/yuxc/archive/2011/08/18/2143606.html 简单的介绍 SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身.它是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/L

python进阶--文件读写操作

Python读写文件 1. open 使用open打开文件后一定要记得调用 文件对象的close()方法.比如可以用try --finally语句来确保最后能关闭文件. >>>f1 = open('thisfile.txt') >>>try: f1.read() finally: f1.close() 2. 读文件(read,readline,readlines) ①读文本文件 input = open('data','r') input.read() ②读二进制文件