Python-方法反射
Python,方法,反射
2025-03-13 21:27:21 时间
什么是反射?
反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。
简而言之 :反射就是通过字符串的去操作对象中的属性
反射的方法
getattr()
: 用于返回一个对象属性值。
hasattr()
: 用于判断对象是否包含对应的属性
delattr()
: 用于删除属性。
setattr()
: 用于设置属性值,该属性不一定是存在的。
实例化对象
class Person():
def __init__(self,name,age):
self.name = name
self.age = age
def walk(self):
print("%s is walking..."% self.name)
def talk(self):
print("%s 调用成功" % self.name)
p = Person("Hopc",'22')
getattr()方法
a = getattr(p,"age")
print("getattr调用: ",a)
getattr调用: 22 # 此为打印结果
# 如果没有age这这个属性则会报错
AttributeError: 'Person' object has no attribute 'age'
hasattr()方法
if hasattr(p,"name2"): # 通过hasattr判断p实例中的name2属性
print("successSecret")
else:
print("None")
setattr方法
"static属性"
setattr(p,"sex","Famale")
print(p.sex)
Famale # 此为打印结果
"设置一个方法"
setattr(p,"talk",talk)
p.talk(p) # 需要再把p对象传入才能调用
Hopc 调用成功 # 此为打印结果
"对类直接进行绑定"
setattr(Person,"talks",talk)
p.talks()
Hopc is walking...
delattr方法
del p.age
p.age()
AttributeError: 'Person' object has no attribute 'age'
相关文章
- sklearn cross validation_python sklearn
- pycharm提示no python interpreter_pycharm代码运行不了
- python re.compile() 详解——Python正则表达式「建议收藏」
- pycharm 删除项目_pycharm怎么删除python文件
- pip安装的包pycharm识别不了_手机上的python安装第三方库
- pycharm安装教程2020.3.4_python安装步骤
- pycharm使用python_pytorch中文手册
- Python进阶39-drf框架(一)
- python格式化json文件_pycharm对齐线
- 统计学 方差分析_python编写计算方差的函数
- Python基础08-名称空间与作用域
- Python之谜:四舍五入round(4.5)等于4?
- pycharm中使用anaconda部署python环境_pycharm怎么用anaconda的环境
- Python基础24-MySQL模块pymysql
- python更新pip失败_pycharm怎么更新pip
- python lambda表达式详解_lambda python
- Python最强地理可视化库Cartopy安装教学
- Pycharm和Anaconda的python版本问题
- Python 安装 【Pycharm interpreter field is empty(解释器为空)】
- pycharm断点运行_python断点调试技巧