当前位置:首页>python>学Python两周,我写的代码是不是屎?

学Python两周,我写的代码是不是屎?

  • 2026-09-02 20:31:39
学Python两周,我写的代码是不是屎?
  • 一位刚刚入坑两周的Python小白

哈喽,我是Python新人,刚学了十四天。昨天写完了一个出题工具,兴奋地发了朋友圈,结果被大佬朋友私信:“兄弟,你这代码……挺有特色的。”

他说的很委婉,但我听懂了——我的代码是屎山。。。

一、 能跑 ≠ 能看

我的工具:用Tkinter搞GUI,还能处理Word文档生成题目。听起来是不是还挺厉害的?毕竟大多数初学者连GUI都不敢碰。

但大佬一句话把我打回原形:“你这玩意能跑只是Python宽容,换其他语言早崩了。”

总结我的代码问题:

“结构混乱,耦合严重,命名随意,错误百出,一股刚学Python的‘骚味儿’。”

二、 GUI代码一锅炖

我的代码结构是这样的:

所有东西都塞在一个类里——数据、UI、业务逻辑全混在一起。写着爽,改起来要命。

正确做法应该是:

  • UI逻辑单独写,只处理按钮、输入框

  • 核心逻辑另起炉灶,比如ExamGenerator 专门出题

  • 数据存取再拆出去一层

就像做饭,你不能在同一个锅里切菜、炒菜、装盘还刷锅吧?

三、 看似封装,实则糊弄

我在 create_widgets 里调用了 create_branding、create_settings 等方法,看起来挺“模块化”?

大佬说:“这是典型的刚学会封装就滥用。”

每个功能区应该写成单独的类:

这样清晰多了,每个部分管好自己的事。

四、 变量命名,随心所欲

看看这个:

大佬说:“你创建了但没用啊!典型的‘学了语法糖但不知道干嘛用’。”

还有我的变量名:folders、counts、count_vars、*_entry……一堆堆的,自己都分不清。

好名字应该是这样的:

一目了然,多舒服。

五、 低级错误,复制粘贴的锅

我代码里有这么一句:

大佬直接笑出声:“你这明显是复制粘贴没粘全啊!”

应该是 from datetime import datetime。这种错误IDE会直接标红,但我硬是没注意。

建议:用专业的IDE写代码(PyCharm、VS Code),红色波浪线别无视!

六、 连“入口”都没有

我的程序直接写代码,没有:

大佬说:“这就像写作文不写标题。你的代码只能直接跑,不能测试、复用、打包。”

七、 Tkinter?该换了

Tkinter学习成本低,但坑多、老旧、难扩展。现在连高中生都不怎么用了。

推荐替代方案:

  • PyQt/PySide2:工业级,写复杂应用稳

  • Kivy:跨平台,移动端也能跑

  • Electron + Python后端:前端用HTML+JS,Python做后端,写管理工具绝配

Tkinter容易养成坏习惯,早点放弃比较好。

八、 Word文档处理,小心踩坑

我用的是 python-docx,大佬提前警告:

  1. 中文字体和格式容易出错

  2. 插入图片路径错了直接崩

  3. 文档样式控制不精细

建议先研究明白docx.styles 结构,不然输出就是“排版灾难”。

九、 到底是不是屎?

大佬说了一段让我沉思的话:

“屎不屎是阶段性的。如果你现在觉得不是,以后看一定觉得是。”

“写出屎是进步的标志,意识到屎才是真觉醒。关键是写完要回头看,学会‘重构’而不是‘堆代码’。”

我能把Tkinter界面写出来,至少敢动手、敢尝试。剩下的,就是学会拆逻辑、分责任,写得干净点。

十、 下一步该怎么做?

大佬给了具体建议:

  1. 重构项目,拆成三层:

    • UI层(Tkinter)

    • 核心逻辑层(题目生成、Word导出)

    • 配置数据处理层

  2. 学写测试,用 unittest 写几个测试用例,尤其是出题逻辑

  3. 每学新模块,就“写demo + 重构”,而不是一味追新

  4. 上GitHub,把项目传上去,写注释,哪怕没人看

写在最后

大佬的最后一句话让我释怀了:

“写得再屎的代码,只要能跑、能学,都是值得骄傲的第一步。”

“写出屎山不可怕,最怕的是——你不自知、不回头、不优化。”

“你现在知道自己写得屎,那你已经比我当年强了。”

所以,我决定:

继续写,继续学,每个月重构一次代码。

半年后我再回头看这个项目,说不定会骂:“这谁写的?真想打人!”

但那时候,我应该已经写出不那么“屎”的代码了。


本文基于真实经历改编,献给所有在Python学习路上挣扎的新手们。

【记住:每一个优雅的程序员,都曾经写过屎山。 🚀】

最新文章

随机文章