我正在修改一些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()
感谢大家的贡献,他们帮助我解决了这个问题。