欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python描述符的簡單介紹-創(chuàng)新互聯(lián)

這篇文章主要介紹“python描述符的簡單介紹”,在日常操作中,相信很多人在python描述符的簡單介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python描述符的簡單介紹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

西工網站制作公司哪家好,找創(chuàng)新互聯(lián)!從網頁設計、網站建設、微信開發(fā)、APP開發(fā)、響應式網站等網站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創(chuàng)新互聯(lián)。

  什么是描述符

  python描述符是一個“綁定行為”的對象屬性,在描述符協(xié)議中,它可以通過方法重寫屬性的訪問。這些方法有 get(), set(), 和__delete__()。如果這些方法中的任何一個被定義在一個對象中,那么這個對象就是一個描述符。

  換句話說: 含有以下三個方法之一的對象就是描述符

  三個方法(協(xié)議):

  get(self, instance, owner):調用一個屬性時,觸發(fā)

  set(self, instance, value):為一個屬性賦值時,觸發(fā)

  delete(self, instance):采用del刪除屬性時,觸發(fā)

  什么是self instance、owner?

  self 是當前描述符(對象)自身,類似C++this指針, instance 是描述符所屬類對象實體、owner是描述符所在的類(誰擁有這些東西,當然是最高的類)

  class Desc(object):

  def __get__(self, instance, owner):

  print("__get__...")

  print("self : \t\t", self)

  print("instance : \t", instance)

  print("owner : \t", owner)

  print('='*40, "\n")

  def __set__(self, instance, value):

  print('__set__...')

  print("self : \t\t", self)

  print("instance : \t", instance)

  print("value : \t", value)

  print('='*40, "\n")

  class TestDesc(object):

  x = Desc()

  #以下為測試代碼

  t = TestDesc()

  t.x

  #以下為輸出信息:

  __get__...

  self : <__main__.Desc object at 0x0000000002B0B828>

  instance : <__main__.TestDesc object at 0x0000000002B0BA20>

  owner :

  ========================================

  @property把函數(shù)調用偽裝成對屬性的訪問

  class Foo:

  @property

  def attr(self):

  print('getting attr')

  return 'attr value'

  def bar(self): pass

  foo = Foo()

  x = property(get, set, del);

  容器類型協(xié)議:

  如果希望定制的容器不可變:只需要定義 len() getitem()這兩個魔法

  如果希望定制的容器可變,還需要定義__setitem__ __delitem __()這兩個魔法

  class CountList:

  def __init__(self, *args):

  self.values = [x for x in args]#列表推導式

  self.count = {}.fromkeys(range(len(self.values)),0)#建立字典記錄訪問次數(shù)

  #字典;0 - len(self.value)

  def __len__(self):

  return len(self.values)

  #獲取值, 并不是獲取訪問次數(shù)

  #gwtitem ,只要訪問 必定觸發(fā), 這就是魔法

  def __getitem__(self,key):

  self.count[key] +=1

  return self.values[key]

  python 迭代器: iter next

  string = ‘hello, python’

  it = iter(string)

  next(it)

  next(it)

  …

  iter迭代器為假的時候,拋出異常

  it = iter(“hello,world”)

  while True:

  try:

  each = next(it)

  print (each)

  except:

  break;

  迭代器的魔法方法:

  iter()

  next()

  class Iter:

  def __init__(self, n =100):

  self.a = 0

  self.b = 1

  self.n = n

  def __iter__(self):

  return self

  def __next__(self):

  self.a, self.b = self.b, self.a + self.b

  if self.a > self.n: #停止迭代

  raise StopIteration

  return self.a

  生成器 : yeild語句的函數(shù)

  生成器也是一種迭代器: yield 語句返回

  亂入 : 胡進里,沒規(guī)律,嘿嘿

  協(xié)同程序:協(xié)程

  所謂協(xié)同程序就是可以運行的獨立函數(shù)調用,函數(shù)可以暫停或者掛起,并在需要的時候從程序離開的地方繼續(xù)執(zhí)行

  生成器也是一種迭代器,那么代表它也可以像迭代器一樣, 可以配合next(迭代器對象)使用

  仔細觀察: generator 生成器第一次調用之后 yield 返回 ,之后并不是從函數(shù)頭再開始 ,而是從離開的地方繼續(xù)調用

  def generator():鄭州婦科醫(yī)院 http://www.xadsyyfk.com/

  a = 0

  b = 1

  print("開始迭代生成器")

  while True:

  a,b = b, a+b

  yield a

  for each in generator():

  if(each > 100):

  break

  print(each,end = ' ')#不換行 ,以空格代替換行

  生成器推導式作為函數(shù)的參數(shù) 可以不帶()

  eg: 0 + … + 9

  本來: sum( (i for i range(10))

  和諧掉() sum sum(i for i in range(10))

  列表推導式[i for i in range(10)]

  字典推導式{i for i in range(100)}

  不存在元組推導式哦, 它變成了生成器generator推導式

  模塊

  容器: 對數(shù)據(jù)的封裝

  函數(shù):對語句的封裝

  類 : 方法和屬性的封裝

  模塊: 就是程序。

  導入模塊名:

  Find1 :

  導入:import +模塊名(as t)

  調用: 模塊名(t). + 函數(shù) ·

  name == main

  if name == main 作用: 讓python識別: 程序是在主程序運行還是在模塊內運行: 即讓python識別是私有程序還是公有程序

  也就是 if name == main 是主程序嗎? 是的話做什么, 不是的話做什么

  搜索路徑

  python 導入模塊的過程有一個路徑搜索的過程

  先sys.path.append(“模塊路徑”)

  再導入模塊

  包 package

  第一步 創(chuàng)建一個文件夾存放模塊 。文件見名字就是包的名字

  第二步 在文件夾內創(chuàng)建一個__init__.py 的模塊文件,內容可以為空

  第三步 將相關的模塊放在文件夾(包)里面

  導入 : 包名.模塊名

到此,關于“python描述符的簡單介紹”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)-成都網站建設公司網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

文章題目:python描述符的簡單介紹-創(chuàng)新互聯(lián)
URL鏈接:http://chinadenli.net/article6/descog.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供品牌網站建設、電子商務品牌網站設計、虛擬主機網站維護、全網營銷推廣

廣告

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

成都做網站