python五面向对象

2017-04-20  本文已影响22人  summer_lz

面向对象

  1. 由于类可以起到模板的作用,因此,可以在创建实例的时候,通过定义一个特殊的__init__方法,把一些我们认为必须绑定的属性强制填写进去。
class Student(object):
     def __init__(self, name, score):
        self.name = name
        self.score = score
  1. 数据封装:
#内部可以访问
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,这样的实例变量外部是可以访问的,但是约定,视为私有变量,不要随意访问。双下划线开头的实例变量是不是一定不能从外部访问呢?其实也不是。不能直接访问 __name是因为Python解释器对外把__name变量改成了_Student__name,所以,仍然可以通过_Student__name来访问__name变量:
访问通过get_set方法访问:

class Student(object):
    ...

    def get_name(self):
        return self.__name

    def get_score(self):
        return self.__score
    def set_score(self, score):
        if 0 <= score <= 100:
            self.__score = score
        else:
            raise ValueError('bad score')
  1. 继承和多态
上一篇 下一篇

猜你喜欢

热点阅读