Python编程中类的属性获取、设置、判断是否存在等,实战hasattr和getattr函数的应用案例!

简介: Python编程中类的属性获取、设置、判断是否存在等,实战hasattr和getattr函数的应用案例!

知识回顾:



有关类的多继承

  1. 掌握的是多继承类定义的写法。
  2. 理解类的同名方法的优先级。
  3. __bases__查看一个类的多个继承父类 。

一、接口



开场白要说的其实是在python中没有接口的概念。那么接口是怎样的呢?接口:理解为一种规范。定义一个接口实际上是一定一个规范,那么一个接口类可以定义多个规范。每个规范实际上是一个函数(方法)名称。接口的实现:通过具体继承这个接口的类来具体实现。


二、Python中的判断模式



Python中采用可以采用方法判断代替某个接口方法是否存在。下面来开始介绍。1. hasattr函数hasatrr(参数1,参数2)函数来判断,如果某个参数1对象中有参数2的方法,那么就返回True,否则返回False参数1:某个类实例化的对象参数2:某个方法名称,用字符串类型表示


通过测试,我们知道hasattr函数其实也同样适用于类的属性。


2. getattr函数getattr(参数1,参数2 [,参数3])参数1:某个类的对象参数2:某个类的方法名称,注意这个方法名称不要加小括号参数3:默认函数,这个方法可以被省略,但是如果被省略的情况下,参数2这个方法名称如果不存在的话,这个函数会直接报异常。如果参数3没有省略,那么这个getattr函数的结果,在参数2不存在的情况下,会返回参数3,使得结果不会报错。注意,参数3在写的时候不要加小括号,一旦加了小括号,参数3这个方法名称就会被自动执行。这里的参数3中的方法名称不一定是要在类的内部的,也可以是外部自定义的。同样的,这个函数也可以适用到属性的获取上面。


3. setattr函数这个函数用来设置对象的默认方法与属性。setattr(参数1,参数2,参数3)参数1:某个类的实例化对象。参数2:需要设置的某个类的新的方法或属性名称。参数3:对象参数2中的方法或属性名称的具体的值。如果参数2是一个属性,那么参数3可以直接设置这个属性的值。如果参数2是一个方法,那么参数3可以设置自定义的某个方法名称,注意这里不要写成字符串的形式,而是直接写某个方法名。如果参数2中的方法或属性名称与对象原有的方法或属性相同,那么就以新设置的为准。


三、总结强调



1.掌握接口的概念。

2.掌握hasattr判断某个对象是否有某个属性或者方法。

3.掌握getattr函数获取某个对象的方法或属性,并可以给予一个默认值。

4.掌握setattr函数设置某个对象的方法或属性。


本节源代码:

class Person:
    name="老刘"
    def say(self):
        print("中文")
    #假定sing这个方法为默认已知的默认方法
    def sing(self):
        print("唱歌")
def chuiniu():
    print("开始吹牛")
ps=Person()
print(hasattr(ps,"name1"))
#getattr获取某个方法
m=getattr(ps,"say1",chuiniu)
m()
def program():
    print("刘金玉编程")
#setattr设置一个默认方法
setattr(ps,"programming",program)
ps.programming()
#设置相同方法名称的情况
setattr(ps,"say",program)
ps.say()
相关文章
|
10小时前
|
存储 数据可视化 API
Python 金融编程第二版(GPT 重译)(三)(5)
Python 金融编程第二版(GPT 重译)(三)
7 0
|
10小时前
|
数据可视化 Python
Python 金融编程第二版(GPT 重译)(三)(4)
Python 金融编程第二版(GPT 重译)(三)
11 2
|
10小时前
|
数据挖掘 索引 Python
Python 金融编程第二版(GPT 重译)(二)(5)
Python 金融编程第二版(GPT 重译)(二)
6 0
|
10小时前
|
索引 Python
Python 金融编程第二版(GPT 重译)(二)(4)
Python 金融编程第二版(GPT 重译)(二)
7 0
|
10小时前
|
存储 SQL 数据可视化
Python 金融编程第二版(GPT 重译)(二)(3)
Python 金融编程第二版(GPT 重译)(二)
8 0
|
1天前
|
Python
|
1天前
|
运维 知识图谱 Python
专为运维工程师设计!阿里藏经阁出品的Python实战手册被我搞来了
Python 可能是极少数既简单又强大的编程语言中的一种。更重要的是,用它来编程是非常快乐的事。 今天给小伙伴们分享的是阿里“藏经阁”出品的专门给运维工程师设计的Python实战手册
|
1天前
|
API Python
Python学习日记(二:函数和逻辑操作)
Python中的函数和逻辑操作至关重要。函数包括可变和不可变参数。
|
2天前
|
数据采集 Python
揭秘淘宝商品信息:Python爬虫技术入门与实战指南
Python爬虫用于获取淘宝商品详情,依赖`requests`和`beautifulsoup4`库。安装这两个库后,定义函数`get_taobao_product_details`,发送GET请求模拟浏览器,解析HTML获取标题和价格。注意选择器需随页面结构更新,遵守爬虫政策,控制请求频率,处理异常,且数据只能用于合法目的。
|
2天前
|
大数据 程序员 Python
Python数据类型大变身!掌握列表推导式与生成器,编程效率翻倍不是梦
【7月更文挑战第2天】在Python中,列表推导式和生成器是提升效率的利器。列表推导式以简洁方式处理循环和条件,如将偶数平方化简为一行代码,提高代码可读性。生成器则按需生成数据,减少内存占用,适合处理大数据。通过`yield`函数实现惰性求值,有效避免内存溢出。掌握这两者,能优化Python编程体验。