Python -- Records項目學習


Records學習筆記

                                      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
>>> 1

  

 

2. ___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)

運行結果:

>>> hello

 

4. 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
>>> out

 

6.  __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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM