赞
赏
Python 默认的 成员函数 和 成员变量 都是公开的,没有类似 C++ 中的 public 和 private 等关键词来修饰,也没有类似 Golang 中使用首字母大小写来控制可访问性。
在 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 属性可以在类外部访问。
使用 __
修饰类的属性,使类的属性私有化
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)
程序运行后,控制台输出如下:
我们定义了一个 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()
程序运行后,控制台输出如下:
我们在类 Person 内部添加了一个函数 info,在 info 函数内部访问了属性 name 和 age,以及私有属性 __score
,因为,类的私有属性,只可以在类内部访问。
Python 默认的成员函数和成员变量都是公开的,没有类似 C++ 中的 public 和 private 等关键词来修饰,也没有类似 Golang 中使用首字母大小写来控制可访问性。
在 Python 中定义私有属性只需要在属性名前加上 “__” 两个下划线,那么这个属性就会成为私有的了,私有的属性只能在类内部访问,不能在类的外部调用。