2017-05-30 71 views
1

我正在學習用python的火花,我想出了這個方法,Python代碼簡化和解釋

def convert_to_row(d: dict) -> Row: 
    return Row(**OrderedDict(sorted(d.items()))) 

這種方法需要一個線和轉換成。

有人可以簡化這些是什麼意思。

1)d: dict

2)-> Row

3)爲什麼是**呢?爲kvargs

另外,如果我把這個包裝到類中,第一個參數將是self,類似的東西。

def convert_to_row(self, d: dict) -> Row: 
    return Row(**OrderedDict(sorted(d.items()))) 

將它的工作方式相同,因爲它是之前在做什麼?

謝謝。

+0

相關:[什麼是Python 3.5中的類型提示](https://stackoverflow.com/q/32557920/1639625)是的,這些'**'是用於'kwargs'解包的。 –

回答

1

1)和2)型提示,其中:

  • 幫助其他開發人員瞭解什麼是預期的類型參數/變量的,什麼是
  • 可以通過檢查函數的返回類型mypy,用於Python
  • 靜態類型檢查器

3)**允許你解壓每對鍵/值從OrderedDict

最後,只需添加self即可將此函數包裝到類中。