私有类变量(私有静态字段)与私有实例变量(私有字段) --Python3
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了私有类变量(私有静态字段)与私有实例变量(私有字段) --Python3,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1499字,纯文字阅读大概需要3分钟。
内容图文
1、私有实例变量
内部可以访问私有实例变量,外部不可以访问私有变量,但可以借助类中的方法间接访问私有变量。
class Foo:
def __init__(self, name):
self.__name = name
def f1(self):
# 内部可以访问__name
print(self.__name)
obj = Foo('Thanlon')
# obj.__name # 访问失败
obj.f1() # 间接可以访问
2、私有类变量
内部可以访问私有类变量(self.私有变量名、类名.私有变量名),外部不可以访问私有变量,但可以借助类中的方法间接访问私有变量。
class Foo:
__age = 12
def f1(self):
# 内部调用
print(self.__age)
print(Foo.__age) # 推荐
obj = Foo()
# 外部无法调用私有类变量
# print(Foo.__age)
# print(obj.__age)
# 外部通过类中的方法间接访问私有类变量
obj.f1()
外部强制访问类变量(不借助类中的方法间接访问,不推荐用):
class Foo:
__age = 12
def f1(self):
# 内部调用
print(self.__age)
print(Foo.__age) # 推荐
obj = Foo()
# 外部强制访问
print(obj._Foo__age)
3、探讨父类中私有变量的访问
因为不实例化父类,所以在这只探讨父类中私有类变量的访问问题。
class Base:
__name = 22
class Student(Base):
def f1(self):
# 不能访问父类私有变量
print(self.__name)
print(Student.__name)
stu = Student()
print(Student.__name) # 出错
print(stu.f1()) # 出错
'''
AttributeError: 'Student' object has no attribute '_Student__name'
'''
很明显,不论在子类的外部还是内部都不能访问到父类的私有类变量。如何才能访问到父类中的私有变量?我们可以通过父类中的方法,间接访问私有类变量。
class Base:
__age = 22
def f2(self):
print(self.__age)
print(Base.__age)
class Student(Base):
def f1(self):
# 不能访问父类私有变量
print(self.__age)
print(Student.__age)
stu = Student()
stu.f2()
'''
22
22
'''
内容总结
以上是互联网集市为您收集整理的私有类变量(私有静态字段)与私有实例变量(私有字段) --Python3全部内容,希望文章能够帮你解决私有类变量(私有静态字段)与私有实例变量(私有字段) --Python3所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。