Python 3.x 如何访问Python3.x中作为参数传递的对象的方法

Python 3.x 如何访问Python3.x中作为参数传递的对象的方法,python-3.x,Python 3.x,假设我有两个这样的软件包: ├── packages │   ├── __init__.py │   ├── packageA │   │   ├── classA.py │   │   ├── classB.py │   │   └── __init__.py │   ├── packageB │   │   ├── classC.py │   │   └── __init__.py   └── test    ├── __init__.py    └── test.py 这是py

假设我有两个这样的软件包:

├── packages
│   ├── __init__.py
│   ├── packageA
│   │   ├── classA.py
│   │   ├── classB.py
│   │   └── __init__.py
│   ├── packageB
│   │   ├── classC.py
│   │   └── __init__.py       
└── test
   ├── __init__.py
   └── test.py
这是py文件的内容:

  • classA.py
A类:
定义初始化(self,a,b):
自身属性a=a
自身属性b=b
def getAttributeA(自身):
返回自我
def getAttributeB(自身):
返回自我
  • classB.py
来自packages.packageA导入类A
B类:
定义初始化(自):
自己
def getList(自我):
list=[classA.classA(10,11),classA.classA(20,21)]
返回列表
  • classC.py
c类:
定义初始化(自):
自己
def方法(自身、对象):
对于对象中的元素:
打印(element.getAttributeA)
  • test.py
来自packages.packageA导入类B
从packages.packageB导入类C
testClassB=classB.classB().getList()
对于testClassB中的元素:
打印(element.getAttributeA())
testClassC=classC.classC()
方法(testClassB)
  • test.py
    中,创建两个实例,一个是
    classB
    ,另一个是
    classC
  • 我试图打印列表中
    classA
    对象项的值,这些值是使用getter获得的
这与我预期的一样,但当我尝试将列表传递到
classC
,并尝试执行相同操作时,我得到以下输出:

    <bound method classA.getAttribteA of <packages.packageA.classA.classA object at 0x7fd038244a20>>
    <bound method classA.getAttribteA of <packages.packageA.classA.classA object at 0x7fd0382448d0>>
为什么会这样


谢谢大家!

在classC中,您打印的是方法本身,而不是方法调用的结果

classC.py
更改为:

class classC:
    def __init__(self):
        self

    def method(self,object):
        for element in object:
            print(element.getAttributeA()) ## added ()

您正试图打印对象本身而不是其值

print(element.getAttributeA)

#Changed to 
print(element.getAttributeA())
print(element.getAttributeA)

#Changed to 
print(element.getAttributeA())