Python私有属性

Python私有属性教程

Python 默认的 成员函数成员变量 都是公开的,没有类似 C++ 中的 public 和 private 等关键词来修饰,也没有类似 Golang 中使用首字母大小写来控制可访问性。

在 Python 中定义私有属性只需要在属性名前加上 “__” 两个下划线,那么这个属性就会成为私有的了,私有的属性只能在 内部访问,不能在类的外部调用。

Python私有属性定义详解

语法

class Person(object): def __init__(self, name, age, score): self.__name = name self.__age = age self.score = score

说明

类 Person 的 name 属性和 age 属性就是私有属性,因此 name 属性和 age 属性前面都加了 __ 修饰,因此 name 属性和 age 属性只可以在类内部访问。

而 score 属性是公有属性,因为 score 属性没有使用 __ 修饰,因此,score 属性可以在类外部访问。

案例

Python类私有属性

使用 __ 修饰类的属性,使类的属性私有化

print("嗨客网(www.haicoder.net)") class Person(object): def __init__(self, name, age, score): self.name = name self.age = age self.score = score person = Person("haicoder", 18, 100) print("Person name =", person.name, "age =", person.age)

程序运行后,控制台输出如下:

69_python类属性私有.png

我们定义了一个 Person 类,Person 类中有三个属性,name、age 和 score,这三个属性都是公有属性,因此我们可以在类的外部进行访问,我们将程序修改如下:

print("嗨客网(www.haicoder.net)") class Person(object): def __init__(self, name, age, score): self.name = name self.age = age self.__score = score def info(self): print("name =", person.name, "age =", person.age, "score =", person.__score) person = Person("haicoder", 18, 100) person.info()

程序运行后,控制台输出如下:

70_python类属性私有.png

我们在类 Person 内部添加了一个函数 info,在 info 函数内部访问了属性 name 和 age,以及私有属性 __score,因为,类的私有属性,只可以在类内部访问。

Python私有属性总结

Python 默认的成员函数和成员变量都是公开的,没有类似 C++ 中的 public 和 private 等关键词来修饰,也没有类似 Golang 中使用首字母大小写来控制可访问性。

在 Python 中定义私有属性只需要在属性名前加上 “__” 两个下划线,那么这个属性就会成为私有的了,私有的属性只能在类内部访问,不能在类的外部调用。