- 属性的访问权限: 公有属性、受保护的属性、私有属性
- Python中并没有真正的私有化支持, 但是可以使用下划线, 完成伪私有的效果
一、公有属性
- 公有属性
* 类内部访问
* 子类内部访问
* 模块内其他位置: 父类, 派生类, 父类实例, 派生类实例
* 跨模块访问: import, from 模块 import *
复制代码
1、类内部访问
class Animal:
name = "旺财"
def call(self):
print(Animal.name)
print(self.name)
a = Animal()
a.call()
# 打印结果:
旺财
旺财
复制代码
2、子类中访问
class Animal:
name = "旺财"
class Dog(Animal):
def call(self):
print(Dog.name)
print(self.name)
d = Dog()
d.call()
# 打印结果:
旺财
旺财
复制代码
3、模块内其他位置访问
- 父类, 派生类
class Animal:
name = "旺财"
class Dog(Animal):
pass
print(Animal.name)
print(Dog.name)
# 打印结果:
旺财
旺财
复制代码
- 父类实例, 派生类实例
class Animal:
name = "旺财"
class Dog(Animal):
pass
a = Animal()
d = Dog()
print(a.name)
print(d.name)
# 打印结果:
旺财
旺财
复制代码
4、跨模块访问类的属性
-
在其他模块中导入使用, 假设本模块名字为
Module
-
import 模块名
import Module
pirnt(Module.Animal.name) # 打印: 旺财
复制代码
from 模块名 import *