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

特殊的方法,

时间:2018-08-30 21:41:45      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:战旗   color   ret   __init__   class   name   def   判断   __iter__   

1.__str__ (就是为了好看)

 1 class Foo(object):
 2     def __init__(self):
 3         pass
 4     def func(self):
 5         pass
 6     def __str__(self):
 7         return "f1"
 8 obj=Foo()
 9 print(obj,type(obj))#f1 <class ‘__main__.Foo‘>
10 #就是为了显示的好看__str__

2.__init__(为了显示全部数据)

 1 class Foo(object):
 2     def __init__(self,name,age):
 3         self.name=name
 4         self.age=age
 5     def func(self):
 6         pass
 7 obj1=Foo(战旗,18)
 8 obj2=Foo(,20)
 9 print(obj1.__dict__)#{‘name‘: ‘战旗‘, ‘age‘: 18}
10 print(obj2.__dict__)#{‘name‘: ‘张‘, ‘age‘: 20}
11 #这里不用声明,直接在对象后面输出__dict__就可以让
12 #所有封装的数据以字典的形式显示出来

3.__iner__ (把类变成可迭代对象)

如果想要把不可迭代对象,
1.在类中定义__iter__方法
2.iter内部返回一个迭代器
怎么判断是否可迭代?
是否有iter,是否返回迭代器
 1 class Foo(object):
 2     def __init__(self,name,age):
 3         self.name=name
 4         self.age=age
 5     def func(self):
 6         pass
 7     def __iter__(self):
 8         return iter([11,22,33,44,55])
 9     # def __iter__(self): 生成器也是特殊的迭代器
10     #    yield 11
11     #    yield 22
12     #    yield 33
13 obj1=Foo(战旗,18)
14 for item in obj1:
15     print(item

 

特殊的方法,

标签:战旗   color   ret   __init__   class   name   def   判断   __iter__   

原文地址:https://www.cnblogs.com/zhangqing979797/p/9562753.html

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