首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python类中“cls”和“self”的区别?

Python类中“cls”和“self”的区别?
EN

Stack Overflow用户
提问于 2011-01-06 16:17:54
回答 2查看 269.9K关注 0票数 342

为什么有时在Python类中使用cls而不是self作为参数?

例如:

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

发布于 2018-03-11 22:55:11

cls表示方法属于类,而self表示方法与类的实例相关,因此带有cls的成员通过类名访问,其中带有self的成员由class...it的实例访问,这与java中的static membernon-static members是相同的概念,如果您来自java背景。

票数 86
EN

Stack Overflow用户

发布于 2021-10-20 22:07:14

如果您希望通过实例访问方法,请将第一个参数保留为self。例如:

代码语言:javascript
复制
class Test:
   def hello(self, name):
      print ('hello ', name)

obj = Test()
obj.hello('Rahul')

如果你想像我们在静态类中那样使用类名访问方法,最好使用cls作为方法中的第一个参数。例如:

代码语言:javascript
复制
class Test:
       def hello(cls, name):
          print ('hello ', name)


Test.hello('Rahul')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4613000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档