为了账号安全,请及时绑定邮箱和手机立即绑定

为什么用类名无法调用类方法,却可以调用变量?

class Person(object):
    count = 0
    def __init__(self,name,score):
        self.name = name
        self.score = score
        
    def get_grade(self):
        return 'A'
        
p1 = new Person('Bom',90)
print p1.get_grade()
print Person.get_grade()

print Person.count
print p1.count


2019-09-18 源自:python进阶 4-9 113 浏览 2 回答

最佳回答

2019-09-19

你这个不是类方法,忘了写@calssmethod了

# coding=utf-8
class Person(object):
    count = 0 #declare a class variable
    def __init__(self,name,score):
        self.name = name #declare a instance variable
        self.score = score
    @classmethod
    def get_grade():  #define a class method
        return 'A'   
    def get_grade2(self): #define a instance method
        return 'B'

p1 = Person('Bom',90)
print p1.get_grade()
print Person.get_grade()
print p1.get_grade2()
print Person.get_grade2()
print Person.count
print p1.count

python类中定义的变量和方法都分为类变量和实例变量,类方法和实例方法,类变量和类方法是绑定与类中的,它们可以被所有的类实例共享,通过类名和实例名都可以调用;而实例变量和实例方法是与实例绑定的,只能通过实例名调用,无法通过类名调用实例方法。

2019-09-19
回复 0

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信