上篇回顾

  • 面向对象是一种编程方式,此编程方式的实现是基于对  和 对象 的使用
  • 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中)
  • 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数
  • 面向对象三大特性:封装、继承和多态
  • 静态属性(@property) 特点:将函数属性伪装成数据属性(封装逻辑)
  • 静态方法(@staticmethod) 跟类和实例无关系,名义上归属类管理,但不能使用类变量和实例变量
  • 类方法(@classmethod) 跟实例没有关系,类自己调用;只能访问类的属性,不能访问实例属性,不需要self参数,自动加cls参数
  • 面向对象的专业术语

本篇介绍

  反射

  • 根据字符串的形式去某个对象中操作它的成员
  • 四个可以实现反射的函数(也适用于对象和类)
class Sea: #
    def __init__(self,name,country,addr):
        self.name = name
        self.country = country
        self.addr = addr
    def sea_wave(self):
        print("一波儿海啸正在来袭")
s1 = Sea("东海","哥雅王国","风车村")

print(hasattr(s1,"name")) # 判断有没有
print(getattr(s1,"name123")) # 找不到报错
print(getattr(s1,"name123",None)) # 可以设置返回值则不报错
del s1.name           # 方式1
print(s1.__dict__)
delattr(s1,"name")     # 方式2
print(s1.__dict__)
setattr(s1,"age",10000) # 设置一个东西
print(s1.__dict__)
反射函数的用法

相关文章:

  • 2021-04-10
  • 2022-02-07
猜你喜欢
  • 2021-09-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-02
  • 2022-01-22
相关资源
相似解决方案