成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python的數(shù)據(jù)模型

zhoutk / 1463人閱讀

摘要:魔術(shù)方法的解釋器遇見魔術(shù)方法時(shí)會(huì)激活一些基本的對(duì)象操作方法例如,獲取字典的元素,其背后實(shí)現(xiàn)的時(shí)方法輸出了自定義的的內(nèi)容,說明內(nèi)部調(diào)用了方法構(gòu)建只要屬性沒有方法的對(duì)象實(shí)現(xiàn)自定義對(duì)一個(gè)對(duì)象進(jìn)行操作,會(huì)調(diào)用對(duì)象的方法和結(jié)合使用以下方法均可重寫,使

魔術(shù)方法 __getitem__

python的解釋器遇見魔術(shù)方法時(shí)會(huì)激活一些基本的對(duì)象操作方法例如,obj[key]獲取obj字典的key元素,其背后實(shí)現(xiàn)的時(shí)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的內(nèi)容,說明內(nèi)部調(diào)用了__getitem__(key)方法
Out[7]: 3
構(gòu)建只要屬性沒有方法的對(duì)象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"
實(shí)現(xiàn)自定義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) # 對(duì)一個(gè)對(duì)象進(jìn)行`len`操作,會(huì)調(diào)用對(duì)象的__len__()方法
Out[21]: 10
namedtuple和__getitem__()結(jié)合使用
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)
以下方法均可重寫,使得自定義類型變現(xiàn)與內(nèi)置類型一樣的編程風(fēng)格
:跟運(yùn)算符無關(guān)的特殊方法

字符串 /字節(jié)序列表示形式
__repr__、__str__、__format__、__bytes__
數(shù)值轉(zhuǎn)換 
__abs__、__bool__、__complex__、__int__、__float__、__hash__、__index__
集合模擬
 __len__、__getitem__、__setitem__、__delitem__、__contains__
迭代枚舉 
__iter__、__reversed__、__next__
可調(diào)用模擬
__call__
上下文管理
__enter__、__exit__
實(shí)例創(chuàng)建和銷毀
__new__、__init__、__del__
屬性管理
 __getattr__、__getattribute__、__setattr__、__delattr__、__dir__
屬性描述符
__get__、__set__、__delete__
跟類相關(guān)的服務(wù)
__prepare__、__instancecheck__、__subclasscheck_


跟運(yùn)算符相關(guān)的特殊方法
類別 方法名和對(duì)應(yīng)的運(yùn)算符
一元運(yùn)算符
__neg__ -、__pos__ +、__abs__ abs()
眾多比較運(yùn)算符
__lt__ <、__le__ <=、__eq__ ==、__ne__ !=、__gt__ >、__ge__ >=
算術(shù)運(yùn)算符
__add__ +、__sub__ -、__mul__ *、__truediv__ /、__floordiv__ //、__mod__ %、__divmod__
divmod()、__pow__ ** 或pow()、__round__ round()
反向算術(shù)運(yùn)算符
__radd__、__rsub__、__rmul__、__rtruediv__、__rfloordiv__、__rmod__、__rdivmod__、__rpow__
增量賦值算術(shù)運(yùn)算符
__iadd__、__isub__、__imul__、__itruediv__、__ifloordiv__、__imod__、__ipow__
位運(yùn)算符
__invert__ ~、__lshift__ <<、__rshift__ >>、__and__ &、__or__ |、__xor__ ^
反向位運(yùn)算符
__rlshift__、__rrshift__、__rand__、__rxor__、__ror__增
量賦值位運(yùn)算符
__ilshift__、__irshift__、__iand__、__ixor__、__ior__

引用《流暢的Python》

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40869.html

相關(guān)文章

  • 入門系列之Scikit-learn在Python中構(gòu)建機(jī)器學(xué)習(xí)分類器

    摘要:使用該數(shù)據(jù)集,我們將構(gòu)建機(jī)器學(xué)習(xí)模型以使用腫瘤信息來預(yù)測(cè)腫瘤是惡性的還是良性的。我們將使用函數(shù)來確定機(jī)器學(xué)習(xí)分類器的準(zhǔn)確性。您已成功構(gòu)建了第一臺(tái)機(jī)器學(xué)習(xí)分類器?,F(xiàn)在,您可以使用在中加載數(shù)據(jù)組織數(shù)據(jù)訓(xùn)練預(yù)測(cè)和評(píng)估機(jī)器學(xué)習(xí)分類器。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實(shí)踐干貨哦~ 本文由信姜緣 發(fā)表于云+社區(qū)專欄 介紹 機(jī)器學(xué)習(xí)是計(jì)算機(jī)科學(xué)、人工智能和統(tǒng)計(jì)學(xué)的研究領(lǐng)域。機(jī)器學(xué)...

    Null 評(píng)論0 收藏0
  • Python學(xué)習(xí)之路17-Django入門

    摘要:編程從入門到實(shí)踐筆記。執(zhí)行命令后,項(xiàng)目的根目錄下會(huì)多出一個(gè)名為的數(shù)據(jù)庫文件。下面創(chuàng)建一個(gè)主題類用戶學(xué)習(xí)的主題返回模型的字符串表示類是中的一個(gè)定義了模型基本功能的類。這種交互式環(huán)境稱為,常用語測(cè)試項(xiàng)目和排除故障。 《Python編程:從入門到實(shí)踐》筆記。從本篇開始將是該書的最后一個(gè)項(xiàng)目,將用3篇文章來介紹Django的基礎(chǔ)。完成一個(gè)學(xué)習(xí)筆記的小網(wǎng)站。 1. 前言 在本篇中,我們將: 用...

    shadowbook 評(píng)論0 收藏0
  • python Copula如何繪制散點(diǎn)模型

      這篇文章的主要目的,是給大家講解一下,關(guān)于python Copula如何進(jìn)行繪制散點(diǎn)模型的相關(guān)實(shí)例,具體的代碼下面給大家列出來了,有問題的小伙伴,可以仔細(xì)的進(jìn)行閱讀下文哦?! ∫弧⑹褂胏opula生成合成數(shù)據(jù)集(synthetic dataset)  1.三維數(shù)據(jù)描述  建立一個(gè)三維數(shù)據(jù)表,查看三維數(shù)據(jù)的散點(diǎn)圖:  fromcopulas.datasetsimportsample_trivar...

    89542767 評(píng)論0 收藏0
  • Python數(shù)據(jù)模型

    摘要:本文重點(diǎn)了解數(shù)據(jù)模型和接口的概念掌握特殊方法的定義,作用和基本用法。一基本概念數(shù)據(jù)模型是數(shù)據(jù)特征的抽象,這里是對(duì)框架的描述。數(shù)據(jù)模型規(guī)范了自身構(gòu)建模塊的接口,模塊包括但不限于序列迭代器函數(shù)類和上下文管理器。 導(dǎo)語:本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之緒論篇的重點(diǎn)知識(shí)及個(gè)人心得,以加深自己的理解。 本文重點(diǎn): 1、了解Python數(shù)據(jù)模型和接口的概念;2、掌握特殊方法的定義,作用和基...

    Flink_China 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<