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

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

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


正在回答

2 回答

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

0 回复 有任何疑惑可以回复我~
# 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类中定义的变量和方法都分为类变量和实例变量,类方法和实例方法,类变量和类方法是绑定与类中的,它们可以被所有的类实例共享,通过类名和实例名都可以调用;而实例变量和实例方法是与实例绑定的,只能通过实例名调用,无法通过类名调用实例方法。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信