欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么掌握Python內(nèi)置方法和屬性應(yīng)用

本篇內(nèi)容介紹了“怎么掌握Python內(nèi)置方法和屬性應(yīng)用”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),巫溪網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:巫溪等地區(qū)。巫溪做網(wǎng)站價(jià)格咨詢:13518219792

1. 前言

python除了豐富的第三方庫外,本身也提供了一些內(nèi)在的方法和底層的一些屬性,大家比較常用的如dict、list、set、min、max、range、sorted等。

2. 內(nèi)置方法和函數(shù)介紹

  •  enumerate

  如果你需要遍歷可迭代的對象,有需要獲取它的序號,可以用enumerate, 每一個(gè)next返回的是一個(gè)tuple

list1 = [1, 2, 3, 4]    list2 = [4, 3, 2, 1]    for idx, value in enumerate(list1):        print(idx, value, list2[idx])    # 0 1 4    # 1 2 3    # 2 3 2    # 3 4 1
  •  zip zip從參數(shù)中的多個(gè)迭代器取元素組合成一個(gè)新的迭代器; 

# 給list加上序號    b = [4, 3, 2, 1]    for i in zip(range(len(b)), b):        print(i)    # (0, 4)    # (1, 3)    # (2, 2)    # (3, 1)
  •  globals():一個(gè)描述當(dāng)前執(zhí)行過程中全局符號表的字典,可以看出你執(zhí)行的所有過程

  •  id(object):python對象的唯一標(biāo)識

  •  staticmethod 類靜態(tài)函數(shù)注解   

@staticmethod        def test():           print('this is static method')      Foo.test = test      Foo.test()
  •  類的屬性 我們來看下一個(gè)類的申明,如下:   

class Foo():         """this is test class"""         def __init__(self, name):             self.name = name          def run(self):             print('running')
# 列出類的所有成員和屬性   dir(Foo)   ['__class__',   '__delattr__',   '__dict__',   '__dir__',   '__doc__',   '__eq__',   '__format__',  '__ge__',   '__getattribute__',   '__gt__',   '__hash__',   '__init__',   '__init_subclass__',   '__le__',   '__lt__',   '__module__',   '__ne__',   '__new__',   '__reduce__',   '__reduce_ex__',   '__repr__',   '__setattr__',   '__sizeof__',   '__str__',   '__subclasshook__',   '__weakref__',   'run']   # 類的注釋   Foo.__doc__   # 'this is test class'   # 類自定義屬性   Foo.__dict__   mappingproxy({'__module__': '__main__',             '__doc__': 'this is test class',             '__init__': <function __main__.Foo.__init__(self, name)>,             'run': <function __main__.Foo.run(self)>,             '__dict__': <attribute '__dict__' of 'Foo' objects>,             '__weakref__': <attribute '__weakref__' of 'Foo' objects>})   # 類的父類   Foo.__base__   # 類的名字   Foo.__name__

類的實(shí)例化和初始化 

# python類先通過__new__實(shí)例化,再調(diào)用__init__進(jìn)行初始化類成員      foo = Foo('milk')

類的屬性添加和訪問 

# 類的訪問     foo.name     foo.run()    # 可以通過setattr 動(dòng)態(tài)的添加屬性     def method():         print("cow")     setattr(foo, "type", "cow")     setattr(foo, "getcow", method)     # cow     foo.type     foo.getcow()     # 動(dòng)態(tài)刪除屬性 delattr     delattr(foo, "type")     # getattr 獲取成員屬性     if hasattr(foo, "run"): # 判斷是否有屬性         func = getattr(foo, "run")         func()

3. 單例模式應(yīng)用

單例模式(Singleton Pattern)是 Java 中最簡單的設(shè)計(jì)模式之一。單例模式要求在類的使用過程中只實(shí)例化一次,所有對象都共享一個(gè)實(shí)例。創(chuàng)建的方法是在實(shí)例的時(shí)候判斷下是否已經(jīng)實(shí)例過了,有則返回實(shí)例化過的全局實(shí)例。python是如何實(shí)現(xiàn)的呢?關(guān)鍵是找到實(shí)例化的地方,對就是前面說的__new__

class Singleton(object):      def __new__(cls, *args, **kwargs):          if not hasattr(cls, '_instance'):              cls._instance = object.__new__(cls)          return cls._instance       def __init__(self, name):          self.name = name  a = Singleton('name1')  b = Singleton('name2')  print(id(a), id(b))  print(a.name, b.name)  # 1689352213112 1689352213112  # name2 name2

4. 反射應(yīng)用

反射在許多框架中都有使用到,簡單就是通過類的名稱(字符串)來實(shí)例化類。一個(gè)典型的場景就是通過配置的方式來動(dòng)態(tài)控制類的執(zhí)行,比如定時(shí)任務(wù)的執(zhí)行,通過維護(hù)每個(gè)定時(shí)任務(wù)類的執(zhí)行時(shí)間,在執(zhí)行時(shí)間到的時(shí)候,通過反射方式實(shí)例化類,執(zhí)行任務(wù),在java中也非常的常見。

python的實(shí)現(xiàn)可以通過上面說的getattr獲取模塊中的類, 通過methodcaller來調(diào)用方法。我們來看一個(gè)簡單的例子

import importlib  from operator import methodcaller  class Foo():      """this is test class"""      def __init__(self, name):          self.name = name       def run(self, info):          print('running %s' % info)  # 類所在的模塊,默認(rèn)情況__main__, 可以通過Foo.__dict__ 中'__module__'獲取  api_module = importlib.import_module('__main__')   # getattr獲取模塊中的類, 這里Foo是字符串哦  clazz = getattr(api_module, 'Foo')  # 實(shí)例化  params = ["milk"]  instance = clazz(*params)  # 方法調(diào)用, 方法也是字符串methodcaller(方法名, 方法參數(shù))  task_result = methodcaller("run", "reflection")(instance)  # running reflection

“怎么掌握Python內(nèi)置方法和屬性應(yīng)用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)站欄目:怎么掌握Python內(nèi)置方法和屬性應(yīng)用
本文鏈接:http://www.aaarwkj.com/article12/igjgdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPTGoogle、網(wǎng)站內(nèi)鏈、面包屑導(dǎo)航、虛擬主機(jī)、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
亚洲啪啪av一区二区三区| 久久免费观看性生活片| 亚洲无综合素人在线观看| 91午夜精品亚洲一区二区三区| 亚洲综合日韩精品国产av| 在线看黄色片播放器日韩| 在线观看中文字幕一区| 青青青在线视频观看华人| 一区二区三区在线观看美女视频| 亚洲av二区三区成人| 久久精品国产亚洲av久一一区| 日韩欧美亚洲综合久久精品| 久久精品女人天堂av免费观看 | 亚洲欧美中文字幕乱码| 色噜噜男人的天堂av| 成人在线观看一区二区三区| av免费在线观看大全| 日本一区二区三区高清在线| 亚洲欧美精品一中文字幕| 99国产综合精品女| 色噜噜人妻av中文字幕| 精品人妻va人妻中文字幕麻豆| 欧美国产免费高清视频| 久久久久久精品人妻网| 精品在线中文字幕不卡| 九九国产精品免费视频| 国产精品自在线拍亚洲另类| 精品色妇熟妇丰满人妻5| 少妇高潮特黄在线观看| 少妇高潮视频在线观看| 亚洲黄色大片在线免费观看| 国产欧美日韩精品一区| 国产亚洲男人av一区三区| 97免费人妻在线视频| 说中文字幕的黄色大网站| 亚洲色图综合在线观看| 在线视频天堂亚洲天堂| 久久国产欧美日韩精品| 中国毛片一区二区三区| 亚洲激情一区在线观看| 青青草国产精品一区二区|