`
wangtong40
  • 浏览: 253037 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Python类的特性方法

阅读更多

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类特性演示

    Python中的`classmethod`是一种特殊的方法修饰符,用于创建类方法。类方法接收的第一个参数是类自身,而不是实例。这使得类方法可以在不创建实例的情况下对类进行操作。与普通方法(实例方法)相比,类方法更适用于...

    深入理解Python特性_1592298155816.pdf,深入理解python特性pdf,Python

    这份名为"深入理解Python特性_1592298155816.pdf"的文档,显然是为了帮助读者更全面地掌握这门语言的核心特性。 首先,Python的动态类型系统是其主要特点之一。这意味着在编写代码时,我们不需要预先声明变量的类型...

    Python语言特性.docx_python面试

    Python 语言特性总结 Python 语言特性是 Python 面试中非常重要的一部分,以下是对 ...Python 语言特性是 Python 面试中非常重要的一部分,需要深入理解 Python 的函数参数传递、元类、方法类型和变量类型等知识点。

    Python实用教程:Python基础,Python高级特性,面向对象编程,多线程,数据库,数据科学,Flask,爬虫开发教程

    Python实用教程:Python基础,Python高级特性,面向对象编程,多线程,数据库,数据科学,Flask,爬虫开发教程。内部含有学习笔记、MD文档、项目教程、笔记文档 Python实用教程:Python基础,Python高级特性,面向...

    python高级特性

    讲述了python面型对象,对类属性的操作,垃圾回收,类的继承,方法重写以及python json等

    Python 类的说明

    根据提供的文件信息,我们可以从中提炼出关于Python类的多个关键...通过以上分析可以看出,Python中的类提供了丰富的功能,包括类变量、实例变量、不同类型的类方法以及继承等机制,这些都是构建复杂程序结构的基础。

    python类和对象.pdf

    python类和对象

    列表特性.py(Python之列表特性)

    根据自学总结的Python入门经验(列表特性),方便刚入门Python的同学加深理解列表的基础。

    Python环境下利用matplotlib绘制发动机万有特性曲线.zip

    开发工具是jupyter notebook,利用matplotlib绘制发动机万有特性曲线。主要分为三部分绘制,...因为数据量的问题,拟合存在一定的失真,相比实际的图会存在一定的出入,代码只是提供一种绘制方法,提供的图仅供参考!

    本方法学python

    由于提供的文件信息中,标题为“本方法学python”,但描述却是关于《深入理解Java虚拟机:JVM高级特性与最佳实践》一书的内容,这似乎存在矛盾,因此,将分开对标题和描述提供的信息进行知识点的阐述。 首先,“本...

    python C++包装类

    "python C++包装类"就是解决这一问题的一种方法。 首先,我们需要理解什么是C++封装的Python类。这是一种技术手段,通过它,C++可以创建一个类,该类能够调用Python的函数、模块或者对象。这种封装通常利用Python的...

    Python伪装文件类对象输入输出重定向方法研究.pdf

    综上所述,本研究提出的Python伪装文件类对象输入输出重定向方法,是在深入理解Python动态特性和操作系统输入输出重定向机制的基础上,针对自动测评中遇到的特定问题而提出的解决方案。这种方案在提高评测效率、减少...

    python获取类的方法.docx

    在Python编程语言中,面向对象编程(OOP)是一个核心特性,而类是实现这一特性的重要构造。类是一种用户自定义的数据类型,它允许我们封装数据(即属性)和行为(即方法)。类的方法定义了类的行为,使我们能够执行...

    python继承和抽象类的实现方法

    在Python中,使用 `abc.ABCMeta` 和 `abc.abstractmethod` 装饰器可以更正式地声明抽象类和抽象方法。例如: ```python from abc import ABC, abstractmethod class AbstractEmployee(ABC): def __init__(self, ...

    python3安装方法

    Python3 是 Python 的最新版本,提供了许多新的语言特性和改进,包括异步编程、类型_hint、f-字符串等。使用 Python3 可以提高开发效率和代码可读性。 安装 Python3 的步骤 1. 下载 Python3 安装文件 首先,需要...

    python-创建类方法.docx

    类方法是Python中面向对象特性的一部分,它们是与类关联而非与类的实例关联的方法。类方法通过`@classmethod`装饰器进行定义,使得它们可以直接通过类调用,而不需要先创建类的实例。 首先,类方法的主要用途之一是...

    详解Python中的静态方法与类成员方法

    ### Python中的静态方法与类成员方法详解 #### 前言 在Python编程语言中,类的方法有两种特殊的形式:静态方法(Static Method)和类成员方法(Class Method)。这两种方法在设计模式、类的设计以及代码复用方面...

    python调用C++类的方法

    本篇主要介绍如何使用`pybind11`这一现代、简洁且高效的工具来实现Python调用C++类的方法。 `pybind11`是一个强大的库,它的设计目标是简化Python与C++之间的交互。它允许在C++代码中直接定义Python接口,使得C++类...

    python类和函数中使用静态变量的方法

    这个方法利用Python的`__init__`初始化方法和`__call__`方法,将类实例化为一个可调用对象。`__call__`方法允许我们像调用函数一样调用一个类的实例。以下是一个简单的累加器实现: ```python class foo: def __...

Global site tag (gtag.js) - Google Analytics