摘要:魔術方法的解釋器遇見魔術方法時會激活一些基本的對象操作方法例如,獲取字典的元素,其背后實現的時方法輸出了自定義的的內容,說明內部調用了方法構建只要屬性沒有方法的對象實現自定義對一個對象進行操作,會調用對象的方法和結合使用以下方法均可重寫,使
魔術方法 __getitem__
python的解釋器遇見魔術方法時會激活一些基本的對象操作方法例如,obj[key]獲取obj字典的key元素,其背后實現的時obj.__getitem__(key)方法
In [5]: class Foo: ...: def __init__(self): ...: self.nums = range(10) ...: def __getitem__(self, position): ...: print "input %d" % position ...: return self.nums[position] ...: ...: In [6]: foo = Foo() In [7]: foo[3] input 3 # 輸出了自定義的input %d的內容,說明內部調用了__getitem__(key)方法 Out[7]: 3構建只要屬性沒有方法的對象namedtuple
In [11]: import collections In [12]: User = collections.namedtuple("User",["name","password"]) In [13]: user = User("Admin","123456") In [14]: user.name Out[14]: "Admin" In [15]: user.password Out[15]: "123456"實現自定義len
In [19]: class Foo: ...: def __init__(self): ...: self.nums = range(10) ...: def __len__(self): ...: return len(self.nums) ...: def __getitem__(self, position): ...: print "input %d" % position ...: return self.nums[position] ...: ...: In [20]: foo =Foo() In [21]: len(foo) # 對一個對象進行`len`操作,會調用對象的__len__()方法 Out[21]: 10namedtuple和__getitem__()結合使用
In [28]: class Foo: ...: def __init__(self): ...: self.nums = [User(letter,num) for letter in string.a ...: scii_uppercase for num in range(10)] ...: def __len__(self): ...: return len(self.nums) ...: def __getitem__(self, position): ...: print "input %d" % position ...: return self.nums[position] In [29]: foo = Foo() In [30]: foo.nums[3] Out[30]: User(name="A", password=3) In [35]: from random import choice In [36]: choice(foo) input 163 Out[36]: User(name="Q", password=3) In [37]: choice(foo) input 144 Out[37]: User(name="O", password=4)以下方法均可重寫,使得自定義類型變現與內置類型一樣的編程風格
:跟運算符無關的特殊方法 字符串 /字節序列表示形式 __repr__、__str__、__format__、__bytes__ 數值轉換 __abs__、__bool__、__complex__、__int__、__float__、__hash__、__index__ 集合模擬 __len__、__getitem__、__setitem__、__delitem__、__contains__ 迭代枚舉 __iter__、__reversed__、__next__ 可調用模擬 __call__ 上下文管理 __enter__、__exit__ 實例創建和銷毀 __new__、__init__、__del__ 屬性管理 __getattr__、__getattribute__、__setattr__、__delattr__、__dir__ 屬性描述符 __get__、__set__、__delete__ 跟類相關的服務 __prepare__、__instancecheck__、__subclasscheck_ 跟運算符相關的特殊方法 類別 方法名和對應的運算符 一元運算符 __neg__ -、__pos__ +、__abs__ abs() 眾多比較運算符 __lt__ <、__le__ <=、__eq__ ==、__ne__ !=、__gt__ >、__ge__ >= 算術運算符 __add__ +、__sub__ -、__mul__ *、__truediv__ /、__floordiv__ //、__mod__ %、__divmod__ divmod()、__pow__ ** 或pow()、__round__ round() 反向算術運算符 __radd__、__rsub__、__rmul__、__rtruediv__、__rfloordiv__、__rmod__、__rdivmod__、__rpow__ 增量賦值算術運算符 __iadd__、__isub__、__imul__、__itruediv__、__ifloordiv__、__imod__、__ipow__ 位運算符 __invert__ ~、__lshift__ <<、__rshift__ >>、__and__ &、__or__ |、__xor__ ^ 反向位運算符 __rlshift__、__rrshift__、__rand__、__rxor__、__ror__增 量賦值位運算符 __ilshift__、__irshift__、__iand__、__ixor__、__ior__
引用《流暢的Python》
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40869.html
摘要:使用該數據集,我們將構建機器學習模型以使用腫瘤信息來預測腫瘤是惡性的還是良性的。我們將使用函數來確定機器學習分類器的準確性。您已成功構建了第一臺機器學習分類器?,F在,您可以使用在中加載數據組織數據訓練預測和評估機器學習分類器。 歡迎大家前往騰訊云+社區,獲取更多騰訊海量技術實踐干貨哦~ 本文由信姜緣 發表于云+社區專欄 介紹 機器學習是計算機科學、人工智能和統計學的研究領域。機器學...
摘要:編程從入門到實踐筆記。執行命令后,項目的根目錄下會多出一個名為的數據庫文件。下面創建一個主題類用戶學習的主題返回模型的字符串表示類是中的一個定義了模型基本功能的類。這種交互式環境稱為,常用語測試項目和排除故障。 《Python編程:從入門到實踐》筆記。從本篇開始將是該書的最后一個項目,將用3篇文章來介紹Django的基礎。完成一個學習筆記的小網站。 1. 前言 在本篇中,我們將: 用...
這篇文章的主要目的,是給大家講解一下,關于python Copula如何進行繪制散點模型的相關實例,具體的代碼下面給大家列出來了,有問題的小伙伴,可以仔細的進行閱讀下文哦?! ∫?、使用copula生成合成數據集(synthetic dataset) 1.三維數據描述 建立一個三維數據表,查看三維數據的散點圖: fromcopulas.datasetsimportsample_trivar...
摘要:本文重點了解數據模型和接口的概念掌握特殊方法的定義,作用和基本用法。一基本概念數據模型是數據特征的抽象,這里是對框架的描述。數據模型規范了自身構建模塊的接口,模塊包括但不限于序列迭代器函數類和上下文管理器。 導語:本文章記錄了本人在學習Python基礎之緒論篇的重點知識及個人心得,以加深自己的理解。 本文重點: 1、了解Python數據模型和接口的概念;2、掌握特殊方法的定義,作用和基...
閱讀 2772·2021-11-02 14:42
閱讀 3163·2021-10-08 10:04
閱讀 1184·2019-08-30 15:55
閱讀 1025·2019-08-30 15:54
閱讀 2311·2019-08-30 15:43
閱讀 1680·2019-08-29 15:18
閱讀 863·2019-08-29 11:11
閱讀 2362·2019-08-26 13:52