gpt4 book ai didi

python - 后期绑定(bind)是否符合 "readibility counts"的理念?

转载 作者:太空宇宙 更新时间:2023-11-04 06:44:39 25 4
gpt4 key购买 nike

我很抱歉 - 我不是来责怪 Python 的。这只是对我所认为的是否正确的反射(reflection)。作为 Python 爱好者两年,我一直只编写小应用程序,无论走到哪里都为 Python 唱赞歌。我最近有机会阅读 Django 的代码,并开始怀疑 Python 是否真的遵循其“可读性重要”的理念。例如,

class A:
a = 10
b = "Madhu"

def somemethod(self, arg1):
self.c = 20.22
d = "some local variable"
# do something
....
...
def somemethod2 (self, arg2):
self.c = "Changed the variable"
# do something 2
...

在使用时创建实例变量的情况下很难跟踪代码流(即上面代码段中的 self.c)。阅读以这种方式编写的大量代码时,不可能看到定义了哪些实例变量。即使阅读一个只有 6-8 个方法且代码不超过 100-150 行的类,它也会变得非常令人沮丧。

我很想知道我对这段代码的阅读是否受到 C++/Java 风格的影响,因为大多数其他语言都遵循与它们相同的方法。有没有一种更流利地阅读这段代码的 Pythonic 方式?是什么让 Python 开发人员采用这种策略来牢记“可读性”?

最佳答案

您提供的代码片段非常不典型(这也可能是因为您可能编造了它):

  • 您通常不会有一个实例变量 (self.c),它在某些点是 float ,而在不同点是字符串。它应该始终是数字或字符串。

  • 您通常不会以任意方法将实例变量带入生活。相反,您通常有一个构造函数 (__init__) 来初始化所有变量。

  • 您通常没有名为 a、b、c 的实例变量。相反,他们有一些会说话的名字。

修复这些问题后,您的示例将更具可读性。

关于python - 后期绑定(bind)是否符合 "readibility counts"的理念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/433662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com