Python 返回函数值而不是字符串

Python 返回函数值而不是字符串,python,python-3.x,Python,Python 3.x,这很奇怪,但我以前从未遇到过,所以我不知道我错在哪里。 我有这个剧本: import PyEngine PyEngine.init() print(PyEngine.info.pack) PyEngine的\uuuu init\uuuu目前是这样的: import subprocess, sys class init(): def __init__(self): __checkp__ = subprocess.check_output([sys.executable

这很奇怪,但我以前从未遇到过,所以我不知道我错在哪里。 我有这个剧本:

import PyEngine

PyEngine.init()

print(PyEngine.info.pack)
PyEngine的
\uuuu init\uuuu
目前是这样的:

import subprocess, sys
class init():
    def __init__(self):
        __checkp__ = subprocess.check_output([sys.executable, "-m", "pip", "freeze"])
        self.__packages__ = [r.decode().split("==")[0] for r in __checkp__.split()]
        self.__pack__ = " ".join(self.__packages__)

        print(self.__pack__)

        self.__info__ = info(self)

class info():
    def __init__(self, main):
        self.__pye__ = main

    def pack(self):
        return self.__pye__.__pack__
使用
打印(self.\uu pack\uuuuuuuuuuuuuuuuuuuu)
,我得到以下信息:

Django Jinja2 MarkupSafe PyOpenGL PyTMX PyYAML Pygments Vector2D WMI attrs euclid future glsvg inputs keyboard pbr pyPEG2 pygame pyglet pygobject pyperclip pytz qutebrowser six stevedore tmx virtualenv virtualenv-clone virtualenvwrapper wheel
<function info.pack at 0x0000000003072A60>
但是通过
print(PyEngine.info.pack)
,我得到了以下信息:

Django Jinja2 MarkupSafe PyOpenGL PyTMX PyYAML Pygments Vector2D WMI attrs euclid future glsvg inputs keyboard pbr pyPEG2 pygame pyglet pygobject pyperclip pytz qutebrowser six stevedore tmx virtualenv virtualenv-clone virtualenvwrapper wheel
<function info.pack at 0x0000000003072A60>

我不明白


另外,我想知道,如果我想的话,如何使用super类。尽管我在这个问题上尝试了很多次,但老实说,即使现在我也不能完全理解它是如何工作的。

是的,
PyEngine.info.pack
(不是
PyEngine.info.pack()
!)是一个函数对象。这里的问题是什么?问题是我认为通过打印(PyEngine.info.pack),它会返回我自己。pack\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。在Python中,一切都是一个函数,因此,例如,
str.format,set.\uuuu init\uuuu,len
是有效的Python。那么我该怎么做呢?显然,你应该调用它。就像任何常规功能一样,如
print
。但是,您将面临另一个错误,该错误将抱怨提供给它的参数数量无效。