zoukankan      html  css  js  c++  java
  • 特殊的方法,

    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
  • 相关阅读:
    Android开发环境搭建
    Noi 2016
    [二分图&最小割]
    [BZOJ 3145][Feyat cup 1.5]Str 解题报告
    [动态图]
    [组合数取模][中国剩余定理]
    [BZOJ 4436][Cerc2015]Kernel Knights
    [NOI 2014]做题记录
    [线段树合并]
    [树套树模板]
  • 原文地址:https://www.cnblogs.com/zhangqing979797/p/9562753.html
Copyright © 2011-2022 走看看