第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别, 所以,你仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。 classStudent(object):def__init__(self,name,score):self.namename self.scorescoredefprint_score(self):print(%s: %s%(self.name,self.score))bartStudent(Bart Simpson,59)bart.print_score()#封装classStudent(object):def__init__(self,name,score):self.namename self.scorescoredefget_grade(self):ifself.score90:returnAelifself.score60:returnBelse:returnClisaStudent(Lisa,99)bartStudent(Bart,59)print(lisa.name,lisa.get_grade())print(bart.name,bart.get_grade()) 如果要让内部属性不被外部访问可以把属性的名称前加上两个下划线__在Python中 实例的变量名如果以__开头就变成了一个私有变量private只有内部可以访问外部不能访问所以我们把Student类改一改 classStudent(object):def__init__(self,name,score):self.__namename self.__scorescoredefget_name(self):returnself.__namedefget_score(self):returnself.__scoredefset_score(self,score):if0score100:self.__scorescoreelse:raiseValueError(bad score)defprint_score(self):print(%s: %s%(self.__name,self.__score))bartStudent(Bart Simpson,59)#bart.get_name()#print(bart.__name)#AttributeError: Student object has no attribute __nameprint(bart._Student__name)