亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對于永遠不會實例化的類的類方法,Python 編碼標準是什么?

對于永遠不會實例化的類的類方法,Python 編碼標準是什么?

PHP
臨摹微笑 2023-11-09 10:13:59
我正在讀一本書,其中他們使用 Python 類作為容器將多個函數捆綁在一個組中。該類永遠不會被實例化。對于此類中的方法,沒有clsorself參數(這讓我很困惑)。由于我熟悉類(將/可能被實例化)和@classmethods,我想知道這些永遠不會被實例化的類是否有名稱和 PEP 指南?通過將這些方法放在不同的文件而不是類中可以實現相同的名稱間距。但是可能有充分的理由為此目的而選擇一個類嗎?在下面的示例中,您可以看到方法“addition”和“addition_2”的行為類似,但類被實例化時除外(當然)。因此,在您永遠不會實例化該類的情況下,您似乎不需要 and@classmethod參數。但這是好的做法嗎?cls# python 3.8.5class Operations:    @classmethod    def addition(cls, value, value_2):        print(value + value_2)    def addition_2(value, value_2):        print(value + value_2)Operations.addition(value=3, value_2=5)  # 8Operations.addition(3, 5)  # 8Operations().addition(value=3, value_2=5)  # 8Operations().addition(3, 5)  # 8Operations.addition_2(value=3, value_2=5)  # 8Operations.addition_2(3, 5)  # 8# expected errors:Operations().addition_2(value=3, value_2=5)  # TypeError: addition_2() got multiple values for argument 'value'Operations().addition_2(3, 5)  # TypeError: addition_2() takes 2 positional arguments but 3 were given
查看完整描述

1 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

您可以擁有一個永遠不會被實例化的類,它只是函數的容器:


class Operations:


    @staticmethod

    def addition(value, value_2):

        print(value + value_2)


    @staticmethod

    def subtraction(value, value_2):

        print(value + value_2)

然而,正如其他人所說,這并不是真正的最佳實踐,您可以將這些函數存儲在不同的模塊中,即一個名為操作的 .py 文件,您可以通過導入它來使用它:


import operations


operations.addition(1, 2)


查看完整回答
反對 回復 2023-11-09
  • 1 回答
  • 0 關注
  • 158 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號