在Python中,对象是通过类定义的。类中的成员变量和成员函数可以是公有的、私有的或保护的。这些成员变量和成员函数的访问权限控制了对象的封装性,可以避免对象中的数据被不良操作修改或误用,提高代码的可读性和可维护性。
在Python中,成员的访问权限可以通过名称前的下划线来控制,下划线的个数决定了访问权限的级别。
在Python中,实际上没有严格的访问控制,这些下划线只是一种命名惯例,用于告诉开发人员哪些成员应该被视为公共的、保护的或私有的。
下面我们通过一个简单的示例来演示Python中公有、私有和保护成员的使用。
pythonCopy codeclass Person:
def __init__(self, name, age, id_number):
self.name = name # 公有成员
self._age = age # 保护成员
self.__id_number = id_number # 私有成员
def display_info(self):
print("Name:", self.name)
print("Age:", self._age)
print("ID Number:", self.__id_number)
class Student(Person):
def __init__(self, name, age, id_number, grade):
Person.__init__(self, name, age, id_number)
self.grade = grade
def display_info(self):
Person.display_info(self)
print("Grade:", self.grade)
p = Person("Tom", 20, "123456")
p.display_info()
print()
s = Student("Mike", 18, "654321", "Grade 10")
s.display_info()
在上面的代码中,我们定义了一个基类 Person
和一个派生类 Student
。在 Person
类中,我们定义了三个成员变量,分别是 name
、_age
和 __id_number
。其中,name
是公有的成员变量,可以被类的外部访问;_age
是保护成员变量,可以被类的派生类访问,但不应该被类的外部访问;__id_number
是私有成员变量,只能在类的内部访问。
在 Person
类中,我们定义了一个 display_info
方法,它用于打印 Person
对象的信息。在 Student
类中,我们继承了Person
类,并定义了一个新的成员变量 grade
。我们还覆盖了 display_info
方法,以便在输出 Person
对象的信息后,打印学生的年级信息。
在上面的示例中,我们创建了一个 Person
对象 p
和一个 Student
对象 s
。我们可以看到,display_info
方法可以访问 Person
类中的公有、保护和私有成员变量,但是,我们无法在外部访问私有成员变量 __id_number
。
Name: Tom
Age: 20
ID Number: 123456
Name: Mike
Age: 18
ID Number: 654321
Grade: Grade 10
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。