博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day23-2 __call__、__str__和__del__
阅读量:5166 次
发布时间:2019-06-13

本文共 852 字,大约阅读时间需要 2 分钟。

目录

__call__

  • 对象后面加括号调用时,会自动触发执行
  • 注:构造方法的执行是由创建对象触发的,即:对象=类名();而对于__call__方法的执行是由对象后加括号触发的,即:对象()或者类()()
class Foo:    def __init__(self, name, age):        print('from init')        def __call__(self, *args, **kwargs):        print(self, args, kwargs)obj = Foo('nick', 18)  # 实例化对象时触发__init__
from init
obj(1,2,3,a=1,b=2)  # 对象加括号调用时触发__call__
<__main__.Foo object at 0x00000265C74DA0F0> (1, 2, 3) {'a': 1, 'b': 2}

__str__

  • 在打印对象的时候触发,必须要返回一个字符串
class Foo:    def __init__(self):        print('from init')        def __str__(self):        return 'from str' # 以字符串类型返回值传给打印,    obj = Foo()
from init
print(obj)
from str

__del__

  • 在删除对象的时候触发
class Foo:    def __init__(self):        print('from init')            def __del__(self):        print('from del')        obj = Foo()
from init
del obj
from del

转载于:https://www.cnblogs.com/863652104kai/p/11067354.html

你可能感兴趣的文章
UpdateLayeredWindow, Layered Windows, codeproject
查看>>
bzoj2809: [Apio2012]dispatching
查看>>
LeetCode第20题
查看>>
产品经理对产品细节需要给到什么程度才不会给开发人员骂?
查看>>
Python File文件
查看>>
克隆 JS克隆
查看>>
内置方法 常用模块
查看>>
golang-笔记2
查看>>
第六章 图(a)概述
查看>>
【SICP练习】56 练习2.24-2.26
查看>>
js--继承
查看>>
关于python format()用法详解
查看>>
LeetCode106. 从中序与后序遍历序列构造二叉树
查看>>
使用工具进行单元测试
查看>>
为什么TCP协议终止链接要四次?
查看>>
[Java] 使用Comparator排序对象
查看>>
maven编译时出现There are test failures
查看>>
(转)sunpinyin使用较大词库之后卡的问题的解决
查看>>
【模板/经典题型】虚树
查看>>
堆排序
查看>>