类方法只能访问类变量,不能访问实例变量。类方法只能访问类里面的变量,外面输入的变量无法使用。

下面用代码简单演示一下:

1.错误示例:

# 类方法只能访问类变量,不能访问实例变量
# 错误示例:

class Person(object):
    def __init__(self, name):  # 构造函数,传递变量
        self.name = name

    @classmethod  # 把work方法变为类方法
    def work(self):
        print("%s is working" % self.name)


d = Person("xiaoming")
d.work()

# 因为self.name这个变量是实例化这个类传进去的,类方法是不能访问实例变量的,只能访问类里面定义的变量

        运行结果如下:

print("%s is working" % self.name)
AttributeError: type object 'Person' has no attribute 'name'

2.正确示例:

# 正确示例
class Person(object):
    name = "杰克"    # 如果方法里面没有该变量也就没有值返回给该方法的运行结果

    def __init__(self, name):
        self.name = name

    @classmethod  # 把work方法变为类方法
    def work(self):
        print("%s is working" % self.name)


d = Person("xiaoming")  # 类方法只能访问类里面的变量,外面输入的变量无法使用
d.work()

        运行结果如下:

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐