2 回答

TA貢獻1765條經驗 獲得超5個贊
諸如您編寫的方法稱為“實例方法”。
self,接收者,應該是一個實例TestClass(否則,許多事情可能會出錯,例如super)。
您可以定義get_keys為靜態方法,或使用簡單函數(不將其放入類中)。
class TestClass:
@staticmethod
def get_keys(s):
return list(s.keys())
您可能需要閱讀有關類的 Python 文檔以獲取更多詳細信息。

TA貢獻1785條經驗 獲得超4個贊
為了具體回答您關于 Pycharm 警告的問題,您當前遇到的警告是由 Pycharm 檢查代碼中的類型引起的已知問題,因為 PyCharm 很困惑,因為它需要一個 TestClass 對象,但得到一個字典對象。
解決此問題的一種方法是禁用該特定警告類型,如從此處解釋的那樣
轉到設置/首選項
在邊欄中,單擊檢查
展開 Python 選項卡
向下滾動
Incorrect Call Arguments
并取消選中它如果這不起作用,您可以取消選中
Type Checker
。
另一個更優雅的方法,雖然我不確定它是否會解決這個 PyCharm 警告,但是在你的函數中添加一個裝飾器,讓 PyCharm 知道你的返回類型是一個字典。教程在這里,但您的文檔字符串可能會包含以下內容:
""" :rtype: Dict [str,int] """
順便說一句,您可能應該在 get_keys 函數上使用@staticmethod
裝飾器,正如 Jean 所提到的,因為它接收一個對象并返回其鍵(并且我們不希望該對象在此過程中訪問我們的 TestClass 數據)。
添加回答
舉報