首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么python obj.atribute会返回地址位置,而obj.atribute.atribute会返回值?

为什么python obj.atribute会返回地址位置,而obj.atribute.atribute会返回值?
EN

Stack Overflow用户
提问于 2019-06-10 05:05:32
回答 1查看 26关注 0票数 0

为了获得我需要调用method.attribute.attribute而不是method.attribute的属性的值,为什么会这样呢?调用method.attribute会产生一个内存地址。如何更改代码才能使method.attribute正常工作?

关于这个中心的大多数问题都围绕着调用print(f)而不是print(f())

代码语言:javascript
复制
class MyList:
    """stores a list and does other stuff eventualy"""
    this_list = []

    def __init__(self, *args):
        for arg in args:
            self.this_list.append(arg)

    def print_list(self):
        """prints the atribute:"description" from the stored objects in the list"""
        for x in range(len(self.this_list)):
            print(MyClassObj(self.this_list[x]).description, sep="\n")

这是用于打印属性描述的值的代码

代码语言:javascript
复制
class MyClassObj:
    """test object to be stores in the "MyList" object."""

    def __init__(self, description):
        self.description = description

这就是包含我想要获取的属性的对象。

代码语言:javascript
复制
class CallList:
    """creates the objects, lists and calls the print method"""
    @staticmethod
    def main():
        test1, test2 = MyClassObj("Test1"), MyClassObj("Test2")
        list1 = MyList(test1, test2)
        list1.print_list()

Main()在上述类的外部调用。

我得到的输出是

代码语言:javascript
复制
<__main__.MyClassObj object at 0x007908F0>
<__main__.MyClassObj object at 0x00790910>

Process finished with exit code 0

如果我更改了行:

代码语言:javascript
复制
print(MyClassObj(self.this_list[x]).description.description, sep="\n")

我得到了预期的结果:

代码语言:javascript
复制
Test1
Test2

Process finished with exit code 0

所以问题是我为什么以及如何改变我的代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-10 05:21:33

print_list中,self.this_list[x]已经是一个MyClassObj,因此MyClassObj(self.this_list[x])创建了一个新的MyClassObj,并将MyClassObj作为其description

因为没有为print定义将MyClassObj转换为字符串的方法,所以使用显示内存地址的默认转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56518371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档