Python 类可以定义的专用方法。专用方法是在特殊情况下或当使用特别语法时由 Python 替你调用的,而不是在代码中直接调用(象普通的方法那样)。
6.5.1 __init__
类似于构造函数。
6.5.2 __del__
类似于析构函数
6.5.3 __repr__
使用repr(obj)的时候,会自动调用__repr__函数,该函数返回和eval()兼容的对象字符串表达式,用于重建对象,如果eval(repr(obj))会得到一个对象的拷贝。
class A:
def __repr__(self):
return 'A()'
x = A()
print repr(x)
b = eval(repr(x)) # 拷贝对象a
print b
6.5.4 __str__
返回一个字符串用于描述字符串本身。
6.5.5 __cmp __
比较运算符,0:等于 1:大于 -1:小于
class Dog:
def __cmp__(self, other):
if other > 0 :
return 1
elif other < 0:
return - 1
else:
return 0
dog = Dog()
if dog > -10:print 'ok'
if dog < -10:print 'ok'
if dog == 0:print 'ok'
class Zoo:
def __getitem__(self, key):
if key == 'dog':return 'dog'
elif key == 'pig':return 'pig'
elif key == 'wolf':return 'wolf'
else:return 'unknown'
zoo = Zoo()
print zoo['dog']
print zoo['pig']
print zoo['wolf']
输出结果:ok ok
6.5.6 __getitem__
__getitem__ 专用方法很简单。象普通的方法 clear,keys 和 values 一样,它只是重定向到字典,返回字典的值。
输出结果:dog pig wolf
6.5.7 __setitem__
__setitem__ 简单地重定向到真正的字典 self.data ,让它来进行工作。
class Zoo:
def __setitem__(self, key, value):
print 'key=%s,value=%s' % (key, value)
zoo = Zoo()
zoo['a'] = 'a'
zoo['b'] = 'b'
zoo['c'] = 'c'
输出结果:dog pig wolf
key=a,value=a
key=b,value=b
key=c,value=c
6.5.8 __delitem__
class A:
def __delitem__(self, key):
print 'delete item:%s' % key
a = A()
del a['key']
分享到:
相关推荐
Python中的`classmethod`是一种特殊的方法修饰符,用于创建类方法。类方法接收的第一个参数是类自身,而不是实例。这使得类方法可以在不创建实例的情况下对类进行操作。与普通方法(实例方法)相比,类方法更适用于...
这份名为"深入理解Python特性_1592298155816.pdf"的文档,显然是为了帮助读者更全面地掌握这门语言的核心特性。 首先,Python的动态类型系统是其主要特点之一。这意味着在编写代码时,我们不需要预先声明变量的类型...
Python 语言特性总结 Python 语言特性是 Python 面试中非常重要的一部分,以下是对 ...Python 语言特性是 Python 面试中非常重要的一部分,需要深入理解 Python 的函数参数传递、元类、方法类型和变量类型等知识点。
Python实用教程:Python基础,Python高级特性,面向对象编程,多线程,数据库,数据科学,Flask,爬虫开发教程。内部含有学习笔记、MD文档、项目教程、笔记文档 Python实用教程:Python基础,Python高级特性,面向...
讲述了python面型对象,对类属性的操作,垃圾回收,类的继承,方法重写以及python json等
python类和对象
开发工具是jupyter notebook,利用matplotlib绘制发动机万有特性曲线。主要分为三部分绘制,...因为数据量的问题,拟合存在一定的失真,相比实际的图会存在一定的出入,代码只是提供一种绘制方法,提供的图仅供参考!
根据自学总结的Python入门经验(列表特性),方便刚入门Python的同学加深理解列表的基础。
由于提供的文件信息中,标题为“本方法学python”,但描述却是关于《深入理解Java虚拟机:JVM高级特性与最佳实践》一书的内容,这似乎存在矛盾,因此,将分开对标题和描述提供的信息进行知识点的阐述。 首先,“本...
"python C++包装类"就是解决这一问题的一种方法。 首先,我们需要理解什么是C++封装的Python类。这是一种技术手段,通过它,C++可以创建一个类,该类能够调用Python的函数、模块或者对象。这种封装通常利用Python的...
综上所述,本研究提出的Python伪装文件类对象输入输出重定向方法,是在深入理解Python动态特性和操作系统输入输出重定向机制的基础上,针对自动测评中遇到的特定问题而提出的解决方案。这种方案在提高评测效率、减少...
在Python编程语言中,面向对象编程(OOP)是一个核心特性,而类是实现这一特性的重要构造。类是一种用户自定义的数据类型,它允许我们封装数据(即属性)和行为(即方法)。类的方法定义了类的行为,使我们能够执行...
在Python中,使用 `abc.ABCMeta` 和 `abc.abstractmethod` 装饰器可以更正式地声明抽象类和抽象方法。例如: ```python from abc import ABC, abstractmethod class AbstractEmployee(ABC): def __init__(self, ...
Python3 是 Python 的最新版本,提供了许多新的语言特性和改进,包括异步编程、类型_hint、f-字符串等。使用 Python3 可以提高开发效率和代码可读性。 安装 Python3 的步骤 1. 下载 Python3 安装文件 首先,需要...
类方法是Python中面向对象特性的一部分,它们是与类关联而非与类的实例关联的方法。类方法通过`@classmethod`装饰器进行定义,使得它们可以直接通过类调用,而不需要先创建类的实例。 首先,类方法的主要用途之一是...
### Python中的静态方法与类成员方法详解 #### 前言 在Python编程语言中,类的方法有两种特殊的形式:静态方法(Static Method)和类成员方法(Class Method)。这两种方法在设计模式、类的设计以及代码复用方面...
本篇主要介绍如何使用`pybind11`这一现代、简洁且高效的工具来实现Python调用C++类的方法。 `pybind11`是一个强大的库,它的设计目标是简化Python与C++之间的交互。它允许在C++代码中直接定义Python接口,使得C++类...
这个方法利用Python的`__init__`初始化方法和`__call__`方法,将类实例化为一个可调用对象。`__call__`方法允许我们像调用函数一样调用一个类的实例。以下是一个简单的累加器实现: ```python class foo: def __...
书中的食谱覆盖了数据结构优化、函数和类的使用、元编程以及性能调优等多个主题,对于提高Python编程效率和解决实际问题非常有帮助。 总的来说,这个学习资源包提供了一个全面的Python学习路径,从基础知识到高级...