码迷,mamicode.com
首页 > 其他好文 > 详细

14.12.1类的特殊成员1

时间:2018-04-13 15:10:55      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:Python   特殊方法   

类的特殊成员1

__call__方法

#__call__方法
class Foo:
    def __init__(self):
        print("init")
    def __call__(self,*args,**kwargs):
        print("call")

obj=Foo()
obj()
# init
# call

Foo()()
# init
# call

#对象()只执行__call__方法,非常特殊
#__init__也是,创建对象就执行__init__方法
#\__int\__方法
s="123"
s=str("123") #等价

i=int(s)
print(i,type(i))  #自己转化成int类型
# 123 <class ‘int‘>

__int__方法

class foo1:

    def __init__(self):
        pass

    def __int__(self):
        return 1234

    def __str__(self): #用于打印,很重要,非常常见
        return "haha"

obj2=foo1()

print(obj2,type(obj2))

#int 加上对象,执行对象的__int__方法,并将返回值赋给int对象
r=int(obj2)

print(r)

# <__main__.foo1 object at 0x000000FFA667AA90> <class ‘__main__.foo1‘>
# 1234

__str__方法

#__str__方法
class foo2:

    def __init__(self,name,age):
        self.name=name
        self.age=age

    def __str__(self): #用于打印,很重要,非常常见
        return "%s-%s"%(self.name,self.age)

obj3=foo2("jiaxin",10)

print(obj3,type(obj3))
# jiaxin-10 <class ‘__main__.foo2‘>

14.12.1类的特殊成员1

标签:Python   特殊方法   

原文地址:http://blog.51cto.com/10777193/2102964

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!