首页技术文章正文

python之私有属性和方法用法

更新时间:2020-09-03 来源:黑马程序员 浏览量:


Python类的属性一般分为私有属性和公有属性,
如C++、C#、Java等面向对象的语言都有定义私有属性的关键字。而Python中没有这类关键字,默认情况下所有的属性都是“公有的”,这样对类中属性的访问将没有任何限制,并且都会被子类继承,也能从子类中进行访问。这肯定不是我们想要的。Python使用约定属性名称来达到这样数据封装的目的。如果属性的名字以两个下划线开始,就表示为私有属性;反之,没有使用双下划线开始的表示公有属性。类的方法也同样使用这样的约定。

应用场景及定义方式

在实际开发中,对象的某些属性或方法可能只希望在对象的内部被使用,而不希望在外部被访问到。

私有属性就是对象不希望公开的属性;

私有方法就是对象不希望公开的方法。

class Women:
    def __init__(self, name):
        self.name = name
        # 不要问女生的年龄
        self.__age = 18
    def __secret(self):
        print("我的年龄是 %d" % self.__age)
xiaofang = Women("小芳")
# 私有属性,外部不能直接访问
# print(xiaofang.__age)
# 私有方法,外部不能直接调用
# xiaofang.__secret()


私有属性或方法定义方式(科普)

在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法。

提示:在日常开发中,不要使用这种方式,访问对象的私有属性或私有方法。

Python中并没有真正意义的私有

·在给属性、方法命名时,实际是对名称做了一些特殊处理,使得外界无法访问到

·处理方式:在名称前面加上    _类名 => _类名__名称

# 私有属性,外部不能直接访问到
print(xiaofang._Women__age)
# 私有方法,外部不能直接调用
xiaofang._Women__secret()

猜你喜欢:

Python模块的分类和模块导入方式
Python视频:Django入门视频
python中的for循环详细介绍
python while循环语句的用法


以下是黑马程序员近期推出的Python兴趣课程,3天入门Python,体验Python的魅力!

0基础Python3天入门课程

   ·了解Python主流就业方向,把握最新热点技术
   ·掌握Python的基础语法及API调用
   ·能够使用Python对数据获取、使用和展示
   ·打造自己的数据分析项目并自动生成工作报告

Python零基础3天课程


分享到:
在线咨询 我要报名
和我们在线交谈!