返回顶部
首页 > 资讯 > 后端开发 > Python >Python 类的专用方法
  • 799
分享到

Python 类的专用方法

方法Python 2023-01-31 01:01:15 799人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

python 类可以定义专用方法,专用方法是在特殊情况下或当使用特别语法时由 Python 替你调用的,而不是在代码中直接调用(象普通的方法那样)。 .1    __init__ 类似于构造函数 #!/usr/

python 类可以定义专用方法,专用方法是在特殊情况下或当使用特别语法时由 Python 替你调用的,而不是在代码中直接调用(象普通的方法那样)。
.1    __init__
类似于构造函数
#!/usr/local/bin/python
class Study:
        def __init__(self,name=None):
                self.name = name
        def say(self):
                print self.name
study = Study("Badboy")
study.say()

.2    __del__
类似于析构函数
#!/usr/local/bin/python
class Study:
        def __init__(self,name=None):
                self.name = name
        def __del__(self):
                print "Iamaway,baby!"
        def say(self):
                print self.name
study = Study("zhuzhengjun")
study.say()

.3__repr__
使用repr(obj)的时候,会自动调用__repr__函数,该函数返回对象字符串表达式,
用于重建对象,如果eval(repr(obj))会得到一个对象的拷贝。
#!/usr/local/bin/python
class Study:
        def __init__(self,name=None):
                self.name = name
        def __del__(self):
                print "Iamaway,baby!"
        def say(self):
                print self.name
        def __repr__(self):
                return "Study('jacky')"
study = Study("zhuzhengjun")
study.say()
print type(repr(Study("zhuzhengjun"))) # str
print type(eval(repr(Study("zhuzhengjun")))) # instance

study = eval(repr(Study("zhuzhengjun")))

study.say()

.4__str__
Python能用print语句输出内建数据类型。有时,程序员希望定义一个类,要求它的对象也能用print语句输出。Python类可定义特殊方法__str__,为类的对象提供一个不正式的字符串表示。如果类的客户程序包含以下语句:

print objectOfClass
那么Python会调用对象的__str__方法,并输出那个方法所返回的字符串。

#!/usr/local/bin/python

class PhoneNumber:
        def __init__(self,number):
                 self.areaCode=number[1:4]
                 self.exchange=number[6:9]
                 self.line=number[10:14]

        def __str__(self):
                return "(%s) %s-%s"%(self.areaCode,self.exchange,self.line)

def test():
         newNumber=raw_input("Enter phone number in the fORM. (123) 456-7890: \n")
         phone=PhoneNumber(newNumber)
         print "The phone number is:"
         print phone

if__name__=="__main__":
         test()
        
方法__init__接收一个形如"(xxx) xxx-xxxx"的字符串。字符串中的每个x都是电话号码的一个位数。方法对字符串进行分解,并将电话号码的不同部分作为属性存储。

方法__str__是一个特殊方法,它构造并返回PhoneNumber类的一个对象的字符串表示。解析器一旦遇到如下语句:
print phone

就会执行以下语句:

print phone.__str__()

程序如果将PhoneNumber对象传给内建函数str(如str(phone)),或者为PhoneNumber对象使用字符串格式化运算符%(例如"%s"%phone),Python也会调用__str__方法。

.5__cmp __
比较运算符,0:等于 1:大于 -1:小于
class Study: 
     def __cmp__(self, other): 
         if other > 0 : 
             return 1 
         elif other < 0: 
             return - 1 
         else: 
             return 0 
  
study = Study() 
if study > -10:print 'ok1' 
if study < -10:print 'ok2' 
if study == 0:print 'ok3'

打印:ok2 ok3
说明:在对类进行比较时,python自动调用__cmp__方法,如-10 < 0 返回 -1,也就是说study 应该小与 -10,估打印ok2

.6__getitem__
__getitem__ 专用方法很简单。象普通的方法 clear,keys 和 values 一样,它只是重定向到字典,返回字典的值。
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']

打印 dog pig wolf

.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'
打印:
key=a,value=a
key=b,value=b
key=c,value=c

.8 __delitem__
__delitem__ 在调用 del instance[key] 时调用 ,你可能记得它作为从字典中删除单个元素的方法。当你在类实例中使用 del 时,Python 替你调用 __delitem__ 专用方法。
class A: 
     def __delitem__(self, key): 
         print 'delete item:%s' %key 
  
a = A() 
del a['key']

本文出自 : Http://5ydycm.blog.51cto.com/115934/157548

--结束END--

本文标题: Python 类的专用方法

本文链接: https://lsjlt.com/news/184480.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python类的专用方法
    Python 类可以定义专用方法,专用方法是在特殊情况下或当使用特别语法时由 Python 替你调用的,而不是在代码中直接调用(象普通的方法那样)。.1    __init__类似于构造函数#!/usr/local/bin/pythoncl...
    99+
    2023-01-31
    方法 Python
  • Python 类的专用方法
    Python 类可以定义专用方法,专用方法是在特殊情况下或当使用特别语法时由 Python 替你调用的,而不是在代码中直接调用(象普通的方法那样)。 .1    __init__ 类似于构造函数 #!/usr/...
    99+
    2023-01-31
    方法 Python
  • 解析Python中的__getitem__专有方法
    __getitem__ 来看个简单的例子就明白: def __getitem__(self, key): return self.data[key] >>> f = fileinf...
    99+
    2022-06-04
    方法 Python
  • Python的类方法与静态方法的使用
    本篇内容主要讲解“Python的类方法与静态方法的使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的类方法与静态方法的使用”吧!在Python语言中有如下3种方法:成员方法类方法(...
    99+
    2023-06-15
  • python--类属性的调用方法
    测试时候类的调用是经常会用到的。简单看下类的调用使用的方法吧。 来看例子:目录结构: 我们现在要在do_class.py这个文件里调用class_learn.py里的类 代码(do_class.py): #!/usr/bin/env pyt...
    99+
    2023-01-31
    方法 类属 python
  • Python中glob类的使用方法
    目录说明glob方法iglob方法说明 glob是python自带的一个文件操作相关模块,用它可以查找符合自己目的文件,类死于Windows下的文件搜索,支持通配符操作,有&ldqu...
    99+
    2022-12-08
    Python glob使用 Python glob用法 Python中glob类
  • python抽象类的使用方法
    这篇文章主要介绍了python抽象类的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、问题描述主要使用场景是这样的比如京东上买东西,买完东西后需要支付,京东可以使用...
    99+
    2023-06-08
  • Python类的内置方法
    本章介绍一下python类中的一些内置方法。内置的方法有很多,有些内置方法在object类中已经定义,子类可以拿来直接使用,也可以重写,但是有些内置方法object类中没有,比如 __len__ 方法(len()方法会调用 对应类中的 __...
    99+
    2023-01-31
    方法 Python
  • python类方法如何使用
    这篇文章给大家分享的是有关python类方法如何使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本...
    99+
    2023-06-14
  • python Str类方法
    #capitalize():字符串首字符大写 string = 'this is a string.' new_str = string.capitalize() print(new_str) #输出:This is a string.  ...
    99+
    2023-01-31
    方法 python Str
  • python string类方法
    !/usr/bin/env python -*- coding: utf-8 -*- name = "app" t = name.capitalize() #首字母大写 print(t) name = "app" t = name.c...
    99+
    2023-01-31
    方法 python string
  • python子类怎么调用父类方法
    在Python中,子类可以通过`super()`函数来调用父类的方法。具体步骤如下: 在子类中定义一个与父类方法同名的方法。 使用...
    99+
    2023-10-25
    python
  • python中子类调用父类的初始化方法
    http://bestchenwu.iteye.com/blog/1044848http://www.crazyant.net/1303.html一直不太理解python的初始化方法,今天找了下资料,先放这改天整理下一、第一种解释:pyth...
    99+
    2023-01-31
    子类 初始化 方法
  • Python中的类和方法使用举例
    1.类的属性 成员变量对象的创建创建对象的过程称之为实例化,当一个对象被创建后,包含三个方面的特性对象聚丙属性和方法,句柄用于区分不同的对象,对象的属性和方法,与类中的成员变量和成员函数对应,obj = MyClass()创建类的一个实例,...
    99+
    2023-01-31
    方法 Python
  • python调用父类的方法是什么
    在Python中,要调用父类的方法,可以使用`super()`函数来实现。在子类中,通过`super()`函数可以调用父类的方法,从...
    99+
    2024-02-29
    python
  • Python中静态方法,类方法,属性方法使用方法
    目录1.静态方法2.类方法3.静态方法与类方法总结4.属性方法1.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普...
    99+
    2024-04-02
  • Python 中类的构造方法 __New__的妙用
    目录1、概述 2、__new__ 和 __init__ 的区别3、应用1:改变内置的不可变类型4、应用2:实现一个单例5、应用3:客户端缓存6、应用4:不同文件不同的解密方法1、概述...
    99+
    2024-04-02
  • python中类的魔术方法
    目的:学习python中class的magic methods,提高编程效率。环境:ubuntu 16.4   python 3.5.2在学习class时一定会接触到它的magic methods,比如常用__init__,形式都是前后有双...
    99+
    2023-01-31
    魔术 方法 python
  • python中class类与方法的用法实例详解
    目录类和方法的概念和实例1.python类:class2.类的构造方法__init__()3.类中方法的参数self4.继承5.方法重写类的特殊属性与方法类的私有属性总结因为一直不太...
    99+
    2024-04-02
  • python怎么调用其他类中的方法
    在Python中,要调用其他类中的方法,需要先创建该类的对象,然后通过对象来调用方法。以下是一个简单的示例:```pythoncla...
    99+
    2023-10-11
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作