标签:战旗 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