码迷,mamicode.com
首页 > 编程语言 > 详细

python面向对象编程

时间:2018-09-05 12:07:38      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:student   obj   通过   面向对象编程   编程   nbsp   python解释器   怎么   name   

1.访问限制

  如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问,所以,我们把Student类改一改:

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实例变量.__score了。不能直接访问__name是因为Python解释器对外把__name变量改成了_Student__name,所以,仍然可以通过_Student__name来访问__name变量,但是强烈建议你不要这么干,因为不同版本的Python解释器可能会把__name改成不同的变量名。

  但是如果外部代码要获取name和score怎么办?可以给Student类增加get_nameget_score这样的方法:

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))

    def get_name(self):
        return self.__name

    def get_score(self):
        return self.__score

 

python面向对象编程

标签:student   obj   通过   面向对象编程   编程   nbsp   python解释器   怎么   name   

原文地址:https://www.cnblogs.com/konglingxi/p/9591311.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!