Python self function



我正在修改一些Python代码。在该代码中有一个称为Proxy的类;运行";即被执行。

import flask
import gevent
class: Proxy
def __init(self):
''' 
*stuff*
'''
flask_app = Flask(__name__)
self.run = lambda: (
self.logger.critical('LISTENING %s%s' % (host, port)) or
flask_app.run(host=host, port=port) 
)
proxy = Proxy()
proxy.run()

我需要更改self.run = lambda: ('...'),以便proxy.run()执行以下代码:

http = WSGIServer(('', 8000), flask_app)
http.serve_forever()

我该怎么做?我认为我不需要lambda表达式,我应该使用其他表达式。如何让proxy.run()执行上面的两行代码?假设我导入了所有正确的依赖项,并且Proxy类按预期运行。提前感谢您的帮助。

我尝试了以下方法:

def run():
http = WSGIServer(('', 8000), flask_app)
http.serve_forever()

然后我尝试了proxy.run(),得到了错误:

AttributeError: 'Proxy" object has no attribute 'run'

通常定义对象属性函数的方法是将其作为方法:

class Proxy:
def __init__(self, app: Flask):
self._app = app
def run(self) -> None:
WSGIServer(('', 8000), self._app).serve_forever()
app = Flask(__name__)
proxy = Proxy(app)  # this calls the __init__ method defined above
proxy.run()         # and this calls the run method with "self" = "proxy"
import flask
import gevent
class: Proxy
def __init(self):
''' 
*stuff*
'''
flask_app = Flask(__name__)
http = WSGIServer(('', 8000), flask_app)
self.run = lambda: (
self.logger.critical('LISTENING %s%s' % (host, port)) or
#flask_app.run(host=host, port=port) 
http.serve_forever()
)
proxy = Proxy()
proxy.run()

感谢大家的贡献,他们帮助我解决了这个问题。

相关内容

最新更新