python 學習--定製類
# python 定製類
class DStudent(object):
# 初始化引數,類似於c# 和 java中的建構函式
# 沒有'_'表示是公有欄位外部可以訪問
# 一個‘_'表示外部可以訪問但是不建議訪問
# 兩個'__'表示外部不能訪問
def __init__(self,name):
self.__name = name
self.__count = 0
# __str__() 和 __repr__(),兩者的區別是__str__()返回使用者看到的字串,而__repr__()返回程式開發者看到的字串,也就是說,__repr__()是為除錯服務的
def __str__(self):
return 'Student object (name:%s) and count:%s' % (self.__name,self.__count)
# 如果一個類想被用於for ... in迴圈,類似list或tuple那樣,就必須實現一個__iter__()方法,該方法返回一個迭代物件,然後,Python的for迴圈就會不斷呼叫該迭代物件的__next__()方法拿到迴圈的下一個值,直到遇到StopIteration錯誤時退出迴圈。
def __iter__(self):
return self
def __next__(self):
self.__count+= 1
if self.__count>50:
raise StopIteration()
return self
# 取制定下表的元素
def __getitem__(self, item):
self.__count = item
return self
# 動態返回屬性
def __getattr__(self, item):
if(item=="test"):
return 'haha'
# 一個物件例項可以有自己的屬性和方法,當我們呼叫例項方法時,我們用instance.method()來呼叫。能不能直接在例項本身上呼叫呢?在Python中,答案是肯定的。
def __call__(self, *args, **kwargs):
print('<-----call---->')
__repr__ = __str__
s = DStudent('Cp')
print(s)
for n in s:
print(n)
print('------')
print(s[0])
print(s[1])
print(s[2])
print('------')
print(s.test)
print('------')
s()
相關文章
- 學習Timer類,定製自己的排程器
- 【廖雪峰python進階筆記】定製類Python筆記
- C++學習 類定義(一)C++
- Python學習:類和例項Python
- Python學習之路8.1-類Python
- Python學習之路41-元類Python
- Python學習系列之類的定義、建構函式 def __init__Python函式
- C++模板的定製二:定製C++類 (轉)C++
- 定製一個BitmapButton類 (轉)
- Python pymodbus類庫使用學習總結Python
- Python pycryptodome類庫使用學習總結Python
- C++模板的定製三:部分定製C++類 (轉)C++
- Python學習,給自己的程式碼做個合集,定製自己的桌面軟體!Python
- Python 學習筆記之類「物件導向,超類,抽象」Python筆記物件抽象
- ElasticSearch7.3 學習之定製分詞器(Analyzer)Elasticsearch分詞
- Python私有變數如何定義?Python學習教程!Python變數
- 零基礎學習 Python 之初識「類」Python
- Python學習手冊之類和繼承Python繼承
- Python pyinstaller類庫使用學習總結Python
- 學習python有什麼好處?哪類人群適合學python?Python
- Python學習之路8.2-對Python類的補充Python
- Python運算子分為哪幾類?Python學習系列!Python
- docker學習(常用命令,映象燒錄,定製映象)Docker
- python定製資料物件Python物件
- Python學習之路——類-物件導向程式設計Python物件程式設計
- Python 3 學習筆記之類與例項Python筆記
- Python clickhouse-driver 類庫使用學習總結Python
- Python中類的定義Python
- python學習總結之 函式定義defPython函式
- 學習javaScript必知必會(6)~類、類的定義、prototype 原型、json物件JavaScript原型JSON物件
- Python自然語言處理 6 學習分類文字Python自然語言處理
- 學習python多久?該如何學習python?Python
- TypeScript學習(三)—— 類TypeScript
- linux 學習類Linux
- python創意小作品程式碼-Python學習,給自己的程式碼做個合集,定製自己的桌面軟體!...Python
- java學習之Date類、DateFormat類JavaORM
- C#學習——基本類——Math類C#
- python類定義的講解Python