1. class Foo:
  2. #构造方法
  3. def __init__(self,name,age):
  4. pass
  5. self.name = name
  6. self.age = age
  7.  
  8. def __str__(self):
  9. return "%s - %d" %(self.name,self.age)
  1. obj1 = Foo('alex',73)
    obj2 = Foo('eric',84)
    print(obj1)

out:
alex - 73

__getitem__

  1. class Foo:
  2. #构造方法
  3. def __init__(self,name,age):
  4. pass
  5. self.name = name
  6. self.age = age
  7. def __getitem__(self, item):
  8. return 123
  9.  
  10. obj = Foo('alex',73)
  11. ret = obj['ab']
  12. print(ret)

out:

123

  1. class Foo:
  2. #构造方法
  3. def __init__(self,name,age):
  4. pass
  5. self.name = name
  6. self.age = age
  7. def __getitem__(self, item):
  8. print(item.start)
  9. print(item.stop)
  10. print(item.step)
    print(type(item),item)
  11.  
  12. obj = Foo('alex',73)
  13.  
  14. ret2 = obj[1:4:2]

out:

1
4
2

<class 'slice'> slice(1, 4, 2)

  1. __setitem__
  1. class Foo:
  2. #构造方法
  3. def __init__(self,name,age):
  4. pass
  5. self.name = name
  6. self.age = age
  7. def __getitem__(self, item):
  8. return 123
  9.  
  10. def __setitem__(self, key, value):
  11. print('setitem')
  12.  
  13. obj = Foo('alex',73)
  14. obj['k1'] = 111

out:

setitem

  1. class Foo:
  2. #构造方法
  3. def __init__(self,name,age):
  4. pass
  5. self.name = name
  6. self.age = age
  7.  
  8. def __setitem__(self, key, value):
  9. print(type(key),type(value))
  10. print(key.start)
  11. print(key.stop)
  12. print(key.step)
  13.  
  14. obj = Foo('alex',73)
  15.  
  16. obj[1:4] = [11,22,33,44]

out:

  1. <class 'slice'> <class 'list'>
  2. 1
  3. 4
    None
  1. __delitem__
  1. class Foo:
  2. #构造方法
  3. def __init__(self,name,age):
  4. pass
  5. self.name = name
  6. self.age = age
  7.  
  8. def __delitem__(self, key):
  9. print('del item')
  10.  
  11. obj = Foo('alex',73)
  12.  
  13. del obj['k1']

out:

del item

  1. class Foo:
  2. #构造方法
  3. def __init__(self,name,age):
  4. pass
  5. self.name = name
  6. self.age = age
  7.  
  8. def __delitem__(self, key):
  9. print(type(key))
  10. print(key.start)
  11. print(key.stop)
  12. print(key.step)
  13.  
  14. obj = Foo('alex',73)
  15.  
  16. del obj[1:4]

out:

<class 'slice'>
1
4
None

python - 类的特殊成员的更多相关文章

  1. 4.1 python类的特殊成员,偏函数,线程安全,栈,flask上下文

    目录 一. Python 类的特殊成员(部分) 二. Python偏函数 1. 描述 2. 实例一: 取余函数 3. 实例二: 求三个数的和 三. 线程安全 1. 实例一: 无线程,消耗时间过长 2. ...

  2. Python类之类的成员

    对于一个学C++的朋友来说,Python类中,哪些是私有成员,哪些是共有成员,估计一直傻傻分不清. 一.本篇博客要解决的问题: Python类中,哪些是私有成员?哪些是共有成员? 二. 关于Pytho ...

  3. Python 类的特殊成员介绍

    类的成员有两种形式 公有成员,在任何地方都能访问 私有成员,只有在类的内部才能方法,私有成员命名时,前两个字符是下划线. class Foo: def __init__(self, name, age ...

  4. python类的特殊成员和方法

    变量或方法 描述 调用时机 __init__ 构造方法 通过类创建对象时,即类名() ,自动触发执行 __doc__ 表示类的描述信息   __module__ 表示当前操作的对象在那个模块   __ ...

  5. 测试Python类成员的单下划线,双下划线,两头下划线的区别

    首先原谅一个菜鸟叫他“两头下划线”.记得在windows编程中,很多宏定义使用下划线+大写,给人逼格很高的错觉.对于Python下划线的认识,大概是从__dict__这个属性开始的,看__dict__ ...

  6. python 类成员函数

    http://cowboy.1988.blog.163.com/blog/static/75105798201091141521583/ 这篇文章总结的非常好 主要注意的地方是 1,在类内调用成员函数 ...

  7. python - 类成员修饰符

    在java,c#类的成员修饰符包括,公有.私有.程序集可用的.受保护的. 对于python来说,只有两个成员修饰符:公有成员,私有成员 成员修饰符是来修饰谁呢?当然是修饰成员了.那么python类的成 ...

  8. Python学习:17.Python面向对象(四、属性(特性),成员修饰符,类的特殊成员)

    一.属性(特性) 普通方法去执行的时候,后面需要加括号,特性方法执行的时候和静态字段一样不需要不需要加括号. 特性方法不和字段同名. 特性方法不能传参数. 在我们定义数据库字段类的时候,往往需要对其中 ...

  9. python 面向对象(类的特殊成员)

    python 面向对象: (思维导图 ↑↑↑↑) 类的特殊成员 python的类成员存在着一些具有特殊含义的成员 1.__init__: 类名() 自动执行 __init__ class Foo(ob ...

随机推荐

  1. MVC Controller 基类中的Request

    今天在测试自己MVC程序的时候发现之前写代码的一个BUG,需求是每个页面要获取当前URL链接中包含的城市ID,我把获取url的方法写到了Controller的基类BaseController(Base ...

  2. HTML5 Canvas图像放大、移动实例1

    1.前台代码 <canvas id="canvasOne" class="myCanvas" width="500" height=& ...

  3. excel运行最多行数

    2003及以前版本为65536(即6万多)行,256列2007版:1048576(即1百零多万)行,16384(即1千多)列

  4. iOS项目名称、版本号与屏幕分辨率

    iOS的版本号,一个叫做Version,一个叫做Build,这两个值都可以在Xcode 中选中target,点击“Summary”后看到. Version在plist文件中的key是“CFBundle ...

  5. 关于PagedDataSource,非常好用的一个分页属性!

    Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeate ...

  6. Sed命令学习

    1.Sed简介     流数据编辑器 Stream editer(sed),它是一种行编辑器(对应于全屏编辑器),一次处理一行的内容.默认不编辑原文件内容(-i会直接修改原文件).处理时,它先将当前符 ...

  7. uva 352 - The Seasonal War

    題意: 要確認畫面中有幾隻Eagles,每個pixel如果是'1'代表為一隻Eagles,但上下左右(包含斜角共8個方向)相連的'1'只能算是同一隻. 想法: 使用DFS找'1'有幾個區域. #inc ...

  8. event对象具有的方法

    // dataTransfer,toElement,fromElement,y,x,offsetY,offsetX,webkitMovementY,webkitMovementX,relatedTar ...

  9. javascript学习教程之---如何从一个tab切换到banner幻灯片的转换

    一个简单的tab切换代码: <!doctype html> <html> <head> <meta charset="utf-8"> ...

  10. php DOMDocument 递归 格式化缩进HTML文档

    function format(\DOMNode $node, $treeIndex = 0) { //不格式化的标签 if (in_array($node->nodeName, array(& ...