356

Python クラスの引数としてcls代わりに使用されることがあるのはなぜですか?self

例えば:

class Person:
    def __init__(self, firstname, lastname):
        self.firstname = firstname
        self.lastname = lastname

    @classmethod
    def from_fullname(cls, fullname):
        cls.firstname, cls.lastname = fullname.split(' ', 1)
4

6 に答える 6

371

"self"との違い"cls"は で定義されていPEP 8ます。エイドリアンが言ったように、これは必須ではありません。コーディングスタイルです。PEP 8言います:

関数とメソッドの引数:

selfインスタンス メソッドの最初の引数には常に使用します。

clsクラス メソッドの最初の引数には常に使用します。

于 2011-01-25T15:27:00.810 に答える
60

クラスメソッドの場合に使用されます。詳細については、このリファレンスを確認してください。

編集:エイドリアンが明らかにしたように、それは慣習です。実際には何でも使用できますがclsself使用されています(PEP8)。

于 2011-01-06T08:21:10.703 に答える