python3知识

python一切皆对象

python所有对象类型都是type实例

object是所有对象的父类

class MyWith():
    def __enter__(self):
        print('__enter__')
        return self
    def __exit__(self, exc_type, exc_val, exc_tb):
        print('__exit__')
    def dosomething(self):
        print('do .....')
import contextlib
@contextlib.contextmanager
def MyWith1(filename):
    print(filename)##__enter__
    yield {} ##dosomething
    print('end') ##__exit__
if __name__ == "__main__":
    with MyWith() as mw:
        mw.dosomething()
    with MyWith1('test.txt') as mw:
        print('test with')##dosomething


##
__enter__
do .....
__exit__
test.txt
test with
end
class Company():
    def __init__(self,name,emps):
        self.name=name
        self.emps=emps
    def __getitem__(self, item):
        print('item')
        # if isinstance(item,slice):
        #     self.emps=self.emps[item]
        # elif isinstance(item,numbers.Integral):
        #     self.emps = [self.emps[item]]
        return self.emps[item]
    def __reversed__(self):
        print('reverse')
        self.emps.reverse()
    def __len__(self):
        return len(self.emps)
    def __iter__(self):
        print('for')
        return iter(self.emps)
    def __contains__(self, item):
        print('in')
        return item in self.emps

if __name__ == "__main__":
   comp=Company('keda',['aa','cc','dd','ee','33','55'])
   # print(comp[:2])
   # print(comp.emps)
   # print(comp[0])
   print('dd1' in comp)

   reversed(comp)
   for a in comp:
       print(a)

  

  

posted @ 2023-10-28 10:05  howhy  阅读(5)  评论(0编辑  收藏  举报