特殊的方法,

Posted zhangqing979797

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了特殊的方法,相关的知识,希望对你有一定的参考价值。

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

 





以上是关于特殊的方法,的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何使用 Outlook 发送代码片段?

VS Code中自定义Emmet代码片段

方法

在两个片段之间拖放?

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法