美文网首页
##Python面向对象编程(一)

##Python面向对象编程(一)

作者: 纳萨立克 | 来源:发表于2017-10-23 11:09 被阅读4次

类和实例

  • 关键字: Class
#定义一个Student类   object父类
class student(object):
    pass 
  • 初始化方法 (______init______) 可以在创建实例的时候绑定属性

注意:特殊方法“init”前后有两个下划线!!!

  def __init__(self, name, score):
       self.name = name
       self.score = score
  • 添加方法
 def get_grade(self):
        if self.score >= 90:
            return 'A'
        if self.score > 80:
            return 'B'
        if self.score >=60:
            return 'C'
        if self.score < 60:
            return 'D'

访问限制

想让内部的变量不被外部访问,可以在属性的名称前面加上两个下划线(__),这样就可以把变量变成私有变量,只可以内部访问的 不可以外部访问

class Student(object):

    def __init__(self, name, score):
        self.__name = name
        self.__score = score

    def print_score(self):
        print('%s,%s' % (self.__name, self.__score))

如果需要外部可以获取到name的值 则可以添加get方法(get_name)

    def get_name(self):
        return self.__name

如果外部可以修改score的值,则可以添加set方法 (set_score)

  def set_score(self, score):
        self.__score = score;
        

如果不设置成私有变量,就可以修改score的值,为什么要大费周章的设置成私有变量,然后添加set方法呢,主要好处是我们可以通过set方法来对score传入的值进行校验

    def set_score(self, score):
        if 0 <= score <= 100:
            self.__score = score
        else:
            print("bad score")

相关文章

网友评论

      本文标题:##Python面向对象编程(一)

      本文链接:https://www.haomeiwen.com/subject/vwwouxtx.html