1.动态添加属性

class Lang(object):
def __init__(self,name,score):
self.name=name
self.score=score
def langinfo(self):
print '%s:%s'%(self.name,self.score)
lang1=Lang('Python','8.5')
lang1.rank=4
print lang1.rank

运行结果:

2.动态添加方法

from types import MethodType
class Lang(object):
def __init__(self,name,score):
self.name=name
self.score=score
def langinfo(self):
print '%s:%s'%(self.name,self.score)
lang1=Lang('Python','8.5')
def getrank(self):
return 4
lang1.getrank=MethodType(getrank,lang1,Lang)
print lang1.getrank()

运行结果:

这种方法只是给实例lang1,动态添加了方法

from types import MethodType
class Lang(object):
def __init__(self,name,score):
self.name=name
self.score=score
def langinfo(self):
print '%s:%s'%(self.name,self.score)
lang1=Lang('Python','8.5')
lang2=Lang('C','')
def getrank(self):
return 4
lang1.getrank=MethodType(getrank,lang1,Lang)
print lang2.getrank()

运行结果:

给类添加方法:

from types import MethodType
class Lang(object):
def __init__(self,name,score):
self.name=name
self.score=score
def langinfo(self):
print '%s:%s'%(self.name,self.score)
lang1=Lang('Python','8.5')
lang2=Lang('C','')
def getrank(self):
return 4
Lang.getrank=MethodType(getrank,None,Lang)
print lang2.getrank()

运行结果:

3.限制Class属性 __slots__

#__slots__使用
from types import MethodType
class Lang(object):
__slots__=('name','score','rank')
def __init__(self,name,score):
self.name=name
self.score=score
def langinfo(self):
print '%s:%s'%(self.name,self.score)
lang1=Lang('Python','8.5')
lang1.rank=4
lang1.desc='Simple'
print lang1.rank

运行结果:

python __slots__使用详解的更多相关文章

  1. (转)python collections模块详解

    python collections模块详解 原文:http://www.cnblogs.com/dahu-daqing/p/7040490.html 1.模块简介 collections包含了一些特 ...

  2. Python 字符串方法详解

    Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息.        ...

  3. python time模块详解

    python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明  一.简介 ...

  4. Python中dict详解

    from:http://www.cnblogs.com/yangyongzhi/archive/2012/09/17/2688326.html Python中dict详解 python3.0以上,pr ...

  5. Python开发技术详解(视频+源码+文档)

    Python, 是一种面向对象.直译式计算机程序设计语言.Python语法简捷而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结 ...

  6. python/ORM操作详解

    一.python/ORM操作详解 ===================增==================== models.UserInfo.objects.create(title='alex ...

  7. 【python进阶】详解元类及其应用2

    前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...

  8. Python开发技术详解PDF

    Python开发技术详解(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1F5J9mFfHKgwhkC5KuPd0Pw 提取码:xxy3 复制这段内容后打开百度网盘手 ...

  9. python之数据类型详解

    python之数据类型详解 二.列表list  (可以存储多个值)(列表内数字不需要加引号) sort s1=[','!'] # s1.sort() # print(s1) -->['!', ' ...

随机推荐

  1. Docker 安装使用

    1:安装 在Linux上安装Docker,要求64位操作系统,并且内核版本需求为3.10以上,查看本机Linux内核版本: [root@localhost ~]# uname -r -.el7.x86 ...

  2. pushlet单播与多播

    近期要弄一个消息推送的功能,在网上找了非常多的关于pushlet的文章,尽管写的都非常具体,可是本人看了以后却总认为是模棱两可···不知道怎样下手,终于參考了这些文章中的一些内容,并结合官网的源码.做 ...

  3. SAP SQ01怎样从开发机传输到生产机

    确认你的Query是本地的还是全局的(跨Client).假设是后者,会自己主动生成传输请求,用标准传输方式就可以. 假设是本地的Query,有两种方式: 方式1:复制成全局的,让后生成传输请求 方式2 ...

  4. Access denied with payslip工资条非同部门员工不能创建bug

    Access Denied The requested operation cannot be completed due to security restrictions. Please conta ...

  5. PO*创建标准采购订单

    --   l_iface_rec       po_headers_interface%ROWTYPE; 校验头相关信息 ) INTO l_po_count FROM po_headers_all p ...

  6. Jquery.getJSON的缓存问题的处理方法

    $.getJSON()存在缓存问题,如果其调用的url之前曾经调用过的话,回调函数就会直接在缓存里取得想要得值,而不是进入到后台   在项目中遇到一个问题,在火狐下,$.getJSON();请求数据一 ...

  7. java Map Set遍历

    Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法,keySet()方法返回值是Map中key值的集合:en ...

  8. getsockopt和accept需要注意的两个细节

    1,getsockopt连续调用问题 通常情况下,在一个socket fd上出现错误时,我们会通过 int status; socklen_t slen; getsockopt(fd, SOL_SOC ...

  9. Servlet乱码问题

    数据像水流一样从一个地方流向另一个地方. 文本流是特殊的二进制流. 既然提到乱码问题,那就必然是用错误的编码去解释二进制流. 在传输过程中必然都是以二进制流传输的. 所以,我们需要考虑的是: 有几个数 ...

  10. PLSQL常用配置之窗口/版面保存、SQL格式化/美化、SQL注释\去掉注释等快捷键配置、登陆历史修改配置

    http://blog.csdn.net/hyeidolon/article/details/8251791   PLSQL常用配置之窗口/版面保存.SQL格式化/美化.SQL注释\去掉注释等快捷键配 ...