为什么在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)
如果您想通过实例访问一个方法,请将第一个参数保留为self。例如:
class Test:
def hello(self, name):
print ('hello ', name)
obj = Test()
obj.hello('Rahul')
如果你想像在静态类中那样使用类名访问方法,最好使用cls作为方法的第一个参数。例如:
class Test:
def hello(cls, name):
print ('hello ', name)
Test.hello('Rahul')
如果您想通过实例访问一个方法,请将第一个参数保留为self。例如:
class Test:
def hello(self, name):
print ('hello ', name)
obj = Test()
obj.hello('Rahul')
如果你想像在静态类中那样使用类名访问方法,最好使用cls作为方法的第一个参数。例如:
class Test:
def hello(cls, name):
print ('hello ', name)
Test.hello('Rahul')