python 私有属性和私有方法

私有属性

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)

 

Guess you like

Origin blog.csdn.net/qq_26086231/article/details/121459773