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
。但是,您将面临另一个错误,该错误将抱怨提供给它的参数数量无效。