python - 将以下 PhotoImage 代码行减少到尽可能少的行数

标签 python metaprogramming

目标是将以下代码减少到尽可能少的代码行(和尽可能少的字符)。它不需要是“可读的”甚至是“pythonic”的,只要简短而甜美即可。这些更多是为了好玩。

self.BlueEgg = PhotoImage(file="assets/blueegg.gif")
self.PolkaEgg = PhotoImage(file="assets/polkaegg.gif")
self.RedEgg = PhotoImage(file="assets/redegg.gif")
self.StripeEgg = PhotoImage(file="assets/sripeegg.gif")
self.YellowEgg = PhotoImage(file="assets/yellowegg.gif")
self.PurpleEgg = PhotoImage(file="assets/purpleegg.gif")
self.PinkEgg = PhotoImage(file="assets/pinkegg.gif")
self.OrangeEgg = PhotoImage(file="assets/orangeegg.gif")
self.CrazyEgg = PhotoImage(file="assets/crazyegg.gif")
self.PlainEgg = PhotoImage(file="assets/plainegg.gif")

它确实适用于我的程序,但我更想看看你们能想出什么!大家复活节快乐!

最佳答案

唯一改变的是 egg 的类型,它改变了 self 的属性和文件名。所以……

types = ('Blue', 'Polka', 'Red', 'Stripe', 'Yellow', 'Purple', 'Pink', 'Orange', 'Crazy', 'Plain')
for t in types:
    setattr(self, '%sEgg' % t, PhotoImage(file='assets/%segg.gif' % t.lower()))

关于python - 将以下 PhotoImage 代码行减少到尽可能少的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760585/

相关文章:

python - 查找范围内的数字二等分python

python - Spark 上下文初始化后,在运行时期间更改 pyspark 的 hadoop 配置中的 aws 凭证

Python 菜单不循环?

python - 如何使用 matplotlib 更改 xticks?

c - 在编译时查找数组元素位置

c# - 使用 Roslyn 在引用的程序集中获取接口(interface)实现

python - 如何将 Databricks Spark-csv 包添加到 IBM Bluemix 上的 Python Jupyter 笔记本

c++ - 是否可以使用 C++ 元编程收集一个特定模板的所有显式实例化类型?

c++ - 当 template<typename, value...> 时强制特定重载

c++ - BOOST_FUSION_ADAPT_STRUCT 的限制