Records链接地址
1.__getitem__(self, key) 内建方法(Build-in)
例子:
1 class Test(object): 2 3 def __getitem__(self, key): 4 5 print("test") 6 7 return 1 8 9 10 11 t = Test() 12 13 print(t["m"])运行结果:
>>> hello >>> 12.___getattr__(self, name) 内建方法(Build-in)
该方法在未找到对象的属性值的时候调用.
例子:
1 class Test(object): 2 def __getattr__(self, name): 3 print("test") 4 return 1 5 6 t = Test() 7 print(t.m)运行结果:
>>> hello >>> 1去掉__getattr__函数时,会提示没有m这个属性的错误。
3.@property 装饰器
用于将一个函数生产对应的getter函数
实例:
class Test(object): @property def name(self): return self._name @name.setter def name(self, name): self._name = name t = Test() t.name = "hello" print(t.name)运行结果:
>>> hello4.A if 条件 else B(语法)
print("1") if __name__=='__main__' else print("2")5.__enter__和__exit__内建方法(Build-in)
用于with语句块,当进入with语句块的时候调用__enter__
当离开with语句块的时候调用__exit__
例子:
1 class test(object): 2 def __enter__(self): 3 print("enter") 4 return self 5 def __exit__(self, type, value, traceback): 6 print("out") 7 del self 8 with test() as m: 9 m.name = 1 10 print (m.name)运行结果:
>>> enter >>> 1 >>> out6. __iter__(self) 迭代器(Build-in)
通过__iter__函数获得一个迭代器对象, 调用迭代器的next方法不断获得下一个值.
例子:
1 class test(object): 2 def __init__(self): 3 self.a = 1 4 self.b = 1 5 def __iter__(self): 6 return self 7 def __next__(self): 8 test = self.a + self.b 9 self.a, self.b = self.b, test 10 return self.a 11 def next(self): 12 return self.__next__ 13 14 for i in test(): 15 if i > 1000: 16 break 17 print(i)