摘要:對(duì)于,經(jīng)常會(huì)用到的是判斷類型,但是判斷類型更推薦的一種方式是使用但是很少會(huì)用到的另外一個(gè)功能,生成一個(gè)新的類型,看官方解釋這樣就可以產(chǎn)生一個(gè)新的類型。
對(duì)于type,經(jīng)常會(huì)用到的是判斷類型,但是判斷類型更推薦的一種方式是使用isinstance();但是很少會(huì)用到type的另外一個(gè)功能,生成一個(gè)新的類型,看官方解釋:
class type(name, bases, dict)
With three arguments, return a new type object. This is essentially a dynamic form of the class statement. The name string is the class name and becomes the name attribute; the bases tuple itemizes the base classes and becomes the bases attribute; and the dict dictionary is the namespace containing definitions for class body and becomes the dict attribute. For example, the following two statements create identical type objects:
>>> class X(object): ... a = 1 ... >>> X = type("X", (object,), dict(a=1))
這樣就可以產(chǎn)生一個(gè)新的類型X。
再舉個(gè)demo:
django框架中的BaseManager
@classmethod def from_queryset(cls, queryset_class, class_name=None): if class_name is None: class_name = "%sFrom%s" % (cls.__name__, queryset_class.__name__) class_dict = { "_queryset_class": queryset_class, } class_dict.update(cls._get_queryset_methods(queryset_class)) return type(class_name, (cls,), class_dict)
over...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/37575.html
摘要:但是隨后有人提出反對(duì)意見并說這個(gè)是隨后搜索到這篇文章深刻理解中的元類里面介紹了如何使用函數(shù)創(chuàng)建一個(gè)類,并解釋了屬性。 有如下代碼 #-*-coding:utf-8-*- class a(): pass a1 = a() print(type(a),type(a1)) 兩個(gè)python版本分別為Python2.7.11Python3.5.1 在python2中得到的結(jié)果(, )a...
摘要:好吧,事實(shí)上,類本身也是實(shí)例,當(dāng)然,它們是元類的實(shí)例。中的一切都是對(duì)象,它們要么是類的實(shí)例,要么是元類的實(shí)例,除了。 寫在最前面 一些很重要的知識(shí),我的寫得有點(diǎn)亂,也可以去看這些文章 Python 面向?qū)ο螅ǔ跫?jí)篇) Python 面向?qū)ο螅ㄟM(jìn)階篇) 深刻理解Python中的元類(metaclass) 首先來看一個(gè)例子,正常情況下我們定義并且實(shí)例一個(gè)類如下 class Foo(ob...
摘要:在交互式控制臺(tái)中運(yùn)行此操作時(shí),您將看到視口更新。鍵入或粘貼到交互式控制臺(tái)中。用戶首選項(xiàng)加載項(xiàng)列表使用顯示有關(guān)每個(gè)加載項(xiàng)的信息。最后兩行僅用于測(cè)試這允許腳本直接在文本編輯器中運(yùn)行以測(cè)試更改。 Blender Python API概述 本文檔的目的是解釋Python和Blender如何組合在一起,涵蓋了一些在閱讀API參考和示例腳本時(shí)可能不明顯的功能。 Python in Blender ...
摘要:由此看來,的官方文檔就把當(dāng)成內(nèi)置函數(shù),這個(gè)認(rèn)識(shí)錯(cuò)誤是有根源的等到的時(shí)候,官方把錯(cuò)誤改正過來了,然而改得并不徹底。使用進(jìn)行判斷,結(jié)果為的才是內(nèi)置函數(shù)。 showImg(https://segmentfault.com/img/bVbm3Bu?w=5184&h=3456);有群友問過,是什么原因使我開始寫技術(shù)公眾號(hào),又是什么動(dòng)力讓我堅(jiān)持寫的。 在我看來,寫作是一件不能敷衍的事,通過寫作來學(xué)...
閱讀 2209·2021-11-22 15:29
閱讀 4098·2021-11-04 16:13
閱讀 991·2019-08-29 16:58
閱讀 339·2019-08-29 16:08
閱讀 1457·2019-08-23 17:56
閱讀 2378·2019-08-23 17:06
閱讀 3166·2019-08-23 16:55
閱讀 2058·2019-08-23 16:22