首页 > 编程知识 正文

python用在哪些方面,python内置函数的使用方法

时间:2023-05-04 01:02:32 阅读:160368 作者:4283

一. getattr函数的作用是什么? 在Python交互式help环境中,输入getattr并回车后,您将获得以下信息:

阅读上图中的信息,可以对getattr函数有以下认识:

接受两个位置参数——object和name,可选参数——default参数object是对象参数name的类型为字符串的对象object的属性名称。 如果存在名为sddjmg的对象且属性为age,则getattr('age ' )的结果与sddjmg.age相同。 如果不知道目标sddjmg是否具有weight属性,请尝试使用getattr(sdjmg,' weight ',0 )进行检索。 如果不保存此属性,则0是属性不存在时返回的默认值,因为default参数的值设置为0。 二、什么时候需要用getattr? 既然getattr(sdjmg,' age ' )和sddjmg.age都可以获取sddjmg对象的age属性的值,那么使用后者不是更好吗? 毕竟,点语法看起来比getattr函数简单多了,不用写那么多字。 确实,一般来说,使用点语法获取属性值很方便。 但是,也有点语法无力,必须使用getattr函数获取属性值的情况。

应该用谁,关键是编写代码的时候程序员是否能够确定要获取哪个属性的值。

如果知道得清楚的话,我想取得age这个属性的值。 sddjmg.age满足了我的需要。 但是,请考虑以下情况。

sddjmg对象有五个属性: name、age、job、weight和height,它们根据用户的选择显示相应的属性。 也就是说,用户说:“让我看看sddjmg的身高! ”并告诉了程序。程序必须向用户展示height属性的值。

在上面的场景中,程序员在编写代码时无法决定访问哪个属性值,选择权交给了用户。 用户输入的是字符串' height ',字符串在sddjmg.height这样的点语法中没有位置。 怎么样? 这个需求在语法上不太合适吧? 如果必须使用语法的话,不是不能。 例如,用词典保存sddjmg的所有属性值。 键是一个字符串,如" height ",其值为属性值,如sddjmg.height。 可以通过字符串“height”检索相应的属性值。 但是,这个方法没有比接下来要介绍的getattr更好的了。 )此时,使用getattr非常合适。 因为getattr的第二个参数类型正是字符串! 我们可以用Getattr(SDDjmg,' height ' )取出身高的值。 您还可以使用default参数成功解决用户输入的属性不存在的问题。

示例代码如下所示。

fromtypingimportnamedtupleclassperson (named tuple ) )。 ' ' ' '人' ' ' ' name : strage : int job : str weight 3360 float height 3360 floatsdjmg=person (恐怖长颈鹿),32, ' actor 178 '是否要将用户输入的字符串分配给变量attribute _ name attribute _ name=input (' whatdoyouwanttoknowabout害怕的长颈鹿? enteranattributename''#请注意,上面的字符串已传递给此函数。 第二个参数#第三个参数是属性不存在时返回的字符串print。 getattr(SDDjmg,attribute_name,' Sorry,thisattr如果您还知道适用于此函数的其他场景,请欢迎在注释区中进行注释。

如果这篇博文有帮助的话,请订购。 (#^.^# )即使有疑问也欢迎留言。 博客用nice或在线秒回复() ) ) ) ) ) ) ) ) ) ) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。