一、权限
权限:在 Python 中,可以对方法和属性设置访问权限,,即规定在什么地方可以使用这些属性和方法。
1.公有
公有:可以在任意的地方通过对象调用,按照之前的方式,直接定义的属性和方法都是公有的。
2.私有
私有:只能在当前类的内部使用,不能在类外部和子类中调用,在属性或者方法名的前边加上两个下划线__,这个属性或者方法就变为私有的
class MyClass:
def __init__(self):
self.public_attr = "这是一个公有属性"
self.__private_attr = "这是一个私有属性"
def show_attributes(self):
print(f"公有属性的值:{self.public_attr}")
print(f"尝试直接访问私有属性会报错,但在类内部可以访问私有属性:{self.__private_attr}")
obj = MyClass()
print(obj.public_attr)
# 输出:这是一个公有属性
# print(obj.__private_attr) # 报错,不能直接在类外部访问私有属性
obj.show_attributes()
运行结果:
二、对象划分
python中一切皆是对象。
1.类对象
类对象:指的是类,class定义的类。可以使用类对象创建对象,保存一些类的属性(类属性)。
2.实例对象
实例对象:通过类名()创建对象的过程(类的实例化对象、实例对象、对象、实例),可以通过实例对象调用类中的方法,保存实例对象的属性(实例对象属性)信息值。
class Dog:
species = "Canis lupus familiaris" # 类属性,所有实例共享
def __init__(self, name, age):
self.name = name # 实例属性
self.age = age
# 创建类对象(即类本身)
print(Dog) # <class '__main__.Dog'>
# 创建实例对象
dog1 = Dog("Buddy", 3)
dog2 = Dog("Max", 5)
print(dog1.name) # Buddy
print(dog1.age) # 3
print(dog1.species) # Canis lupus familiaris
print(dog2.name) # Max
print(dog2.age) # 5
print(dog2.species) # Canis lupus familiaris