我有一些不按预期运行的代码。我已经将其浓缩为这里的问题:
item = None
try:
if item != None:
print('pass')
except TypeError, e:
print('fail')
Run Code Online (Sandbox Code Playgroud)
如果项目不是“无”类型,则打印通过。如果项目为 None ,我想引发异常,但是当我将 item 设置为 None 时,没有任何打印出来。
我可以使用 if 语句轻松完成此操作,但我很想知道为什么这不能用作 try/except。
有什么想法吗?
谢谢!
我目前正在测试套接字 io 应用程序,我注意到不寻常的行为。在我的 init python 脚本中,我声明了一个函数,该函数实例化 Flask 对象并通过 socketIO 实例(全局)初始化它,即(假设所有这些文件都在同一目录范围内):
#/test_app/configs/__init__.py
__socketIO__ = SocketIO()
def create_app(address, port):
app = Flask(__name__, static_url_path='')
app.config.from_pyfile('config.py')
__socketIO__.init_app(app)
return app
Run Code Online (Sandbox Code Playgroud)
在另一个Python脚本中:
#/test_app/run_app.py
from configs import create_app
from configs import __socketIO__ as launch_socket
ip_address = '0, 0, 0, 0'
port = 5000
APP = create_app(ip_address, port)
if __name__ == '__main__':
print 'launching....'
launch_socket.run(APP, debug=True, host=ip_addres, port=port)
Run Code Online (Sandbox Code Playgroud)
鉴于此,如果我运行 run_app.py,“启动...”将打印两次。这种行为是否典型?当然,我仍在学习 socket.io 的方法,所以也许我错过了一些要点。它初始化两次似乎很奇怪。如果这种行为是不必要的或有害的,是否有办法避免?
谢谢!