当前位置 > 首页 > 科技前沿 > 正文

Python打印对象的全部属性
  • 发布时间:2019-09-08
  • www.zzqgjd.cn
  • Qianfeng JAVA Development Institute我想分享2天前

    __dict__method

    在这种情况下,您希望打印出对象的各种属性。但是,不同对象的属性名称不同,结构不同,不可能编写代码来实现。然后我找到__dict__,使用这个属性,我可以动态获取对象的所有属性,不包括公共属性。

    使用__dict__,您可以动态获取对象的所有属性。获得的是字典,属性名称是字典的键,属性值是字典的值。除了不包括公共属性外,还可以从输出中获得私有属性。

    然后,如果您只想要属性值,则可以重新处理字典。查看字典的3种方法:

    Dict.items:使用祖先来存储密钥和标记

    Dict.keys:只包含键

    Dict.values:仅包含值

    以上三个方法返回一个可迭代对象,可以用于遍历,但不能用于迭代器,也不能使用下一个方法。

    然后按如下方式打印

    最后,拆分打印时使用的方法

    a=dict1.items这是一个可以遍历

    的可迭代对象

    b=(%s:%s项目中的项目a)使用for循环遍历a,每个术语是元祖先,并将元素祖先转换为%s:%s的字符串。最外面的部分变成了迭代器。也可以用来变成一个列表。

    c='n'.join(b)最后,使用join方法完成字符串的拼接

    __str__method

    还找到了更好的使用方法,并且可以获得公共属性。 __str__方法打印对象,不再打印对象的内存地址,但打印__str__方法的返回值:

    这里应该注意,返回值必须是字符串,因此必须传递数据类型

    返回.join(str(item)for item in(self.display,self.name,self.age,self.course,self .__ salary))这也可以写成

    返回%s%s%s%s%s%s%(self.display,self.name,self.age,self.course,self .__ salary)虽然这很好理解,但前面的%s的数量必须是变量是一致的。如果要添加1或减去1变量,则必须在之前和之后进行更改。

    __str__方法可以完全自定义您自己对象的输出格式。由于它是自定义方法,您还可以添加参数控制。但是在调用时似乎没有地方可以填写参数。

    实际上,当打印调用对象时,系统帮助我们自动将打印指向__str__方法,这意味着print(t1)实际执行print(t1 .__ str__)。这时,我们可以写出整体。然后添加参数。

    事实上,这里不是所有的打印属性,但我们已经定制了打印内容。但是自定义位置在类中,这个位置是获取所有属性。

    最终方法

    实际上,上述两种方法一起使用。事实上,上述两种方法应该没问题,但既然都明白了,就留下记录。

    让我提一点。定义__str__方法后,虽然printout是一个字符串,但其他时间传递的值仍然是一个对象。如果要获取打印值而不是对象,则使用对象__str__传递它。这是最后一个例子:

    收集报告投诉

    __dict__method

    在这种情况下,您希望打印出对象的各种属性。但是,不同对象的属性名称不同,结构不同,不可能编写代码来实现。然后我找到__dict__,使用这个属性,我可以动态获取对象的所有属性,不包括公共属性。

    使用__dict__,您可以动态获取对象的所有属性。获得的是字典,属性名称是字典的键,属性值是字典的值。除了不包括公共属性外,还可以从输出中获得私有属性。

    然后,如果您只想要属性值,则可以重新处理字典。查看字典的3种方法:

    Dict.items:使用祖先来存储密钥和标记

    Dict.keys:只包含键

    Dict.values:仅包含值

    以上三个方法返回一个可迭代对象,可以用于遍历,但不能用于迭代器,也不能使用下一个方法。

    然后按如下方式打印

    最后,拆分打印时使用的方法

    a=dict1.items这是一个可以遍历

    的可迭代对象

    b=(%s:%s项目中的项目a)使用for循环遍历a,每个术语是元祖先,并将元素祖先转换为%s:%s的字符串。最外面的部分变成了迭代器。也可以用来变成一个列表。

    c='n'.join(b)最后,使用join方法完成字符串的拼接

    __str__method

    还找到了更好的使用方法,并且可以获得公共属性。 __str__方法打印对象,不再打印对象的内存地址,但打印__str__方法的返回值:

    这里应该注意,返回值必须是字符串,因此必须传递数据类型

    返回.join(str(item)for item in(self.display,self.name,self.age,self.course,self .__ salary))这也可以写成

    返回%s%s%s%s%s%(self.display,self.name,self.age,self.course,self.u salary),虽然这一点很好理解,但前面的%s的数目后面必须跟变量是一致的。如果你想加1或减1个变量,你必须在前后改变它。

    方法可以完全自定义自己对象的输出格式。因为它是一个自定义方法,所以您也可以添加参数控件。但在调用时似乎没有地方填充参数。

    事实上,当print调用对象时,系统帮助我们自动将打印指向uu str_uuu方法,这意味着print(T1)实际上执行print(T1.uu str_uuuuu)。在这个时候,我们可以写整个。然后添加参数。

    0×251f

    实际上,这里并不是所有的打印属性,但是我们已经定制了打印内容。但是自定义位置在类中,该位置用于获取所有属性。

    终极方法

    实际上,以上两种方法是一起使用的。事实上,上述两种方法应该是好的,但既然他们都理解了,就留下一份记录。

    让我提一点。定义了uu str_uuu方法之后,尽管打印输出是字符串,但在其他时间传递的值仍然是一个对象。如果你想得到打印的值而不是对象,那么用对象uu str_uuuuuuuu传递它。最后一个例子是:

    0×2520个

    ——

    白云信息网 版权所有© www.zzqgjd.cn 技术支持:白云信息网 | 网站地图