小编fgh*_*fgh的帖子

项目和属性之间的区别 - Jinja,Python

我正在阅读Jinja 中的模板,特别是关于变量的内容。我想请您解释一下有关传递给 Jinja 语法对象的访问值的这句话:

执行

为了方便起见,Jinja2中的foo.bar在Python层做了以下事情:

  • 检查foo 上名为 bar 的属性(getattr(foo, 'bar'))

  • 如果没有,检查foo 中是否有项目“bar”(foo.__getitem__('bar'))

  • 如果不存在,则返回一个未定义的对象。

foo['bar'] 的工作原理基本相同,但顺序略有不同:

  • 检查foo 中的项目“bar”。(foo.__getitem__('bar'))

  • 如果没有,请检查foo 上是否有名为 bar 的属性。(getattr(foo, '酒吧'))

  • 如果不存在,则返回一个未定义的对象。

如果对象具有同名的项目和属性,这一点很重要。此外, attr() 过滤器仅查找属性。

项目和属性有什么区别?

PS - 如果相关的话:我从事字典工作。我刚刚读到Jinja可以使用键作为属性(dict.key)来访问值,但是在阅读这部分有关过程顺序的部分后我感到困惑。比较“键值”对使得理解上面的部分更具挑战性。

python attributes items jinja2

5
推荐指数
1
解决办法
1618
查看次数

MovieWriter (ffmpeg) 不可用 PyCharm (Windows)

我已按照说明下载 ffmpeg 并根据Matplotlib-Animation“No MovieWriters Available”添加路径 虽然我可以在 Windows 控制台的命令提示符和 Bash 中输入版本,但心爱的 PyCharm 警告我:

Requested MovieWriter (ffmpeg) not available
Run Code Online (Sandbox Code Playgroud)

当我尝试保存动画时:

ani = anim.FuncAnimation(fig, animate, frames = 14, init_func = init, interval = 500, repeat = False)
plt.show()
ani.save("Inno.mp4", writer=writer)
Run Code Online (Sandbox Code Playgroud)

我必须添加另一条路径吗?请帮助我,我真的厌倦了这个错误。

windows animation ffmpeg matplotlib python-3.x

3
推荐指数
1
解决办法
7791
查看次数