bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Pythonnamedtuple的用法是什么-創新互聯

本篇內容介紹了“Python namedtuple的用法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

10年積累的成都網站制作、成都做網站經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站制作后付款的網站建設流程,更有澤庫免費網站建設讓你可以放心的選擇與我們合作。

1:說一下你對Python中模塊和包的理解。

每個Python文件就是一個模塊,而保存這些文件的文件夾就是一個包,但是這個作為Python包的文件夾必須要有一個名為__init__.py的文件,否則無法導入這個包。通常一個文件夾下還可以有子文件夾,這也就意味著一個包下還可以有子包,子包中的__init__.py并不是必須的。模塊和包解決了Python中命名沖突的問題,不同的包下可以有同名的模塊,不同的模塊下可以有同名的變量、函數或類。在Python中可以使用import或from ... import ...來導入包和模塊,在導入的時候還可以使用as關鍵字對包、模塊、類、函數、變量等進行別名,從而徹底解決編程中尤其是多人協作團隊開發時的命名沖突問題。

2:說一下你知道的Python編碼規范。

點評:企業的Python編碼規范基本上是參照PEP-8或谷歌開源項目風格指南來制定的,后者還提到了可以使用Lint工具來檢查代碼的規范程度,面試的時候遇到這類問題,可以先說下這兩個參照標準,然后挑重點說一下Python編碼的注意事項。

空格的使用

  1. 使用空格來表示縮進而不要用制表符(Tab)。

  2. 和語法相關的每一層縮進都用4個空格來表示。

  3. 每行的字符數不要超過79個字符,如果表達式因太長而占據了多行,除了首行之外的其余各行都應該在正常的縮進寬度上再加上4個空格。

  4. 函數和類的定義,代碼前后都要用兩個空行進行分隔。

  5. 在同一個類中,各個方法之間應該用一個空行進行分隔。

  6. 二元運算符的左右兩側應該保留一個空格,而且只要一個空格就好。

標識符命名

  1. 變量、函數和屬性應該使用小寫字母來拼寫,如果有多個單詞就使用下劃線進行連接。

  2. 類中受保護的實例屬性,應該以一個下劃線開頭。

  3. 類中私有的實例屬性,應該以兩個下劃線開頭。

  4. 類和異常的命名,應該每個單詞首字母大寫。

  5. 模塊級別的常量,應該采用全大寫字母,如果有多個單詞就用下劃線進行連接。

  6. 類的實例方法,應該把第一個參數命名為self以表示對象自身。

  7. 類的類方法,應該把第一個參數命名為cls以表示該類自身。

表達式和語句

  1. 采用內聯形式的否定詞,而不要把否定詞放在整個表達式的前面。例如:if a is not b就比if not a is b更容易讓人理解。

  2. 不要用檢查長度的方式來判斷字符串、列表等是否為None或者沒有元素,應該用if not x這樣的寫法來檢查它。

  3. 就算if分支、for循環、except異常捕獲等中只有一行代碼,也不要將代碼和if、for、except等寫在一起,分開寫才會讓代碼更清晰。

  4. import語句總是放在文件開頭的地方。

  5. 引入模塊的時候,from math import sqrt比import math更好。

  6. 如果有多個import語句,應該將其分為三部分,從上到下分別是Python標準模塊、第三方模塊和自定義模塊,每個部分內部應該按照模塊名稱的字母表順序來排列。

3:運行下面的代碼是否會報錯,如果報錯請說明哪里有什么樣的錯,如果不報錯請說出代碼的執行結果。

class A:
   def __init__(self, value):
       self.__value = value

   @property
   def value(self):
       return self.__value

obj = A(1)
obj.__value = 2
print(obj.value)
print(obj.__value)

點評:這道題有兩個考察點,一個考察點是對_和__開頭的對象屬性訪問權限以及@property裝飾器的了解,另外一個考察的點是對動態語言的理解,不需要過多的解釋。

1
2

擴展:如果不希望代碼運行時動態的給對象添加新屬性,可以在定義類時使用__slots__魔法。例如,我們可以在上面的A中添加一行__slots__ = ('__value', ),再次運行上面的代碼,將會在原來的第10行處產生AttributeError錯誤。

4:對下面給出的字典按值從大到小對鍵進行排序。

prices = {
   'AAPL': 191.88,
   'GOOG': 1186.96,
   'IBM': 149.24,
   'ORCL': 48.44,
   'ACN': 166.89,
   'FB': 208.09,
   'SYMC': 21.29
}

點評:sorted函數的高階用法在面試的時候經常出現,key參數可以傳入一個函數名或一個Lambda函數,該函數的返回值代表了在排序時比較元素的依據。

sorted(prices, key=lambda x: prices[x], reverse=True)

題目45:說一下namedtuple的用法和作用。

點評:Python標準庫的collections模塊提供了很多有用的數據結構,這些內容并不是每個開發者都清楚,就比如題目問到的namedtuple,在我參加過的面試中,90%的面試者都不能準確的說出它的作用和應用場景。此外,deque也是一個非常有用但又經常被忽視的類,還有Counter、OrderedDict 、defaultdict 、UserDict等類,大家清楚它們的用法嗎?

在使用面向對象編程語言的時候,定義類是最常見的一件事情,有的時候,我們會用到只有屬性沒有方法的類,這種類的對象通常只用于組織數據,并不能接收消息,所以我們把這種類稱為數據類或者退化的類,就像C語言中的結構體那樣。我們并不建議使用這種退化的類,在Python中可以用namedtuple(命名元組)來替代這種類。

from collections 
import namedtuple

Card = namedtuple('Card', ('suite', 'face'))
card1 = Card('紅桃', 13)
card2 = Card('草花', 5)
print(f'{card1.suite}{card1.face}')
print(f'{card2.suite}{card2.face}')

命名元組與普通元組一樣是不可變容器,一旦將數據存儲在namedtuple的頂層屬性中,數據就不能再修改了,也就意味著對象上的所有屬性都遵循“一次寫入,多次讀取”的原則。和普通元組不同的是,命名元組中的數據有訪問名稱,可以通過名稱而不是索引來獲取保存的數據,不僅在操作上更加簡單,代碼的可讀性也會更好。

命名元組的本質就是一個類,所以它還可以作為父類創建子類。除此之外,命名元組內置了一系列的方法,例如,可以通過_asdict方法將命名元組處理成字典,也可以通過_replace方法創建命名元組對象的淺拷貝。

class MyCard(Card):

   def show(self):
       faces = ['', 'A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
       return f'{self.suite}{faces[self.face]}'print(Card)    # <class '__main__.Card'>
card3 = MyCard('方塊', 12)
print(card3.show())    # 方塊Q
print(dict(card1._asdict()))    # {'suite': '紅桃', 'face': 13}
print(card2._replace(suite='方塊'))    # Card(suite='方塊', face=5)

“Python namedtuple的用法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯-成都網站建設公司網站,小編將為大家輸出更多高質量的實用文章!

當前題目:Pythonnamedtuple的用法是什么-創新互聯
當前URL:http://vcdvsql.cn/article24/dgopje.html

成都網站建設公司_創新互聯,為您提供定制開發用戶體驗移動網站建設面包屑導航外貿網站建設網站策劃

廣告

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

手機網站建設