私用属性.py 835 B

12345678910111213141516171819202122232425262728
  1. # -*- coding: UTF-8 -*-
  2. class Person:
  3. def __init__(self, f_name, s_name):
  4. self.__f_name = f_name # 私用属性。__ 只能在内部调用
  5. self.s_name = s_name
  6. # 特性
  7. @property # 装饰下面函数,不需要加()就可以执行
  8. def full_name(self):
  9. return f"{self.__f_name} {self.s_name}" # 使用私用属性
  10. obj = Person('xu', 'dc')
  11. print(obj.full_name)
  12. # print(obj.__f_name) # 私用属性,无法在外部调用
  13. ###============ 函数匿名 ============###
  14. class A():
  15. def __run(self): # 函数也可以定义为 私用 __ 双下滑线
  16. pass
  17. class B(A):
  18. pass
  19. obj = B()
  20. # print(obj.__run(1)) # 无法调用
  21. print(A.__dict__) # 重命名技术。可以打印出来。看看 __run 变成了什么样
  22. A._A__run(1) # 这样就可以访问私用属性了。