私有属性
Python 对类的成员没有严格的访问控制限制。这与其他面向对象语言有区别。关于私有属性和私有方法:
1,两个下划线开头的属性是私有的(private)。其他为公共的(public).
2,类内部可以访问私有属性(方法);
3,类外部不能直接访问私有属性(方法);
4,类外部可以通过“__类名__私有属性(方法)名” 访问私有属性(方法)
公开属性
class Student:
def __init__(self,name,age):
# 公开的属性
self.name = name
self.age = age
s = Student("小明", 18)
print(s.name)
print(s.age)
私有属性的定义和访问
class Student:
def __init__(self,name,age):
self.name = name
# 定义私有属性
self.__age = age
s = Student("小明", 18)
print(s.name)
# print(s.age)
print(s._Student__age)
print(dir(s))
私有方法的定义和访问
class Student:
def __init__(self,name,age):
self.name = name
# 定义私有属性
self.__age = age
# 定义私有方法
def __work(self):
print('好好学习')
print("年龄:{0}".format(self.__age)) # 内部调用私有属性
s = Student("小明", 18)
print(s.name)
print(s._Student__age)
print(dir(s))
s._Student__work()
类属性的定义及访问
class Student:
__school = 'csdn一中'
def __init__(self,name,age):
self.name = name
# 定义私有属性
self.__age = age
# 定义私有方法
def __work(self):
print('好好学习')
print("年龄:{0}".format(self.__age)) # 内部调用私有属性
print(Student.__school) # 调用类变量
s = Student("小明", 18)
print(s.name)
print(s._Student__age)
print(dir(s))
s._Student__work()
print(s._Student__school)