返回介绍

类是模块内的属性

发布于 2024-01-29 22:24:15 字数 1415 浏览 0 评论 0 收藏 0

在继续学习之前,请记住类的名称没有什么神奇之处。当class语句执行时,这只是赋值给对象的变量,而对象可以用任何普通表达式引用。例如,如果FirstClass是写在模块文件内,而不是在交互模式下输入的,就可将其导入,在类开头的那行可以正常地使用它的名称。

或者,其等效写法如下。

就像其他一切事物一样,类名称总是存在于模块中,所以必须遵循第五部分学到的所有规则。例如,单一模块文件内可以有一个以上的类,就像模块内其他语句,class语句会在导入时执行已定义的变量名,而这些变量名会变成独立的模块属性。更通用的情况是,每个模块可以任意混合任意数量的变量、函数以及类,而模块内的所有变量名的行为都相同。文件food.py示范如下。

如果模块和类碰巧有相同名称,也是如此。例如,文件person.py,写法如下。

需要像往常一样通过模块获取类:

虽然这个路径看起来是多余的,但却是必需的:person.person指的是person模块内的person类。只写person只会取得模块,而不是类,除非使用from语句。

就像其他的变量一样,没有预先导入,并且从其所在文件中将其取出,我们是无法看见文件中的类的。如果这看起来令人困惑,就别让模块和该模块内的类使用相同名称。实际上,Python中的通用惯例指出,类名应该以一个大写字母开头,以使得它们更为清晰:

此外,虽然类和模块都是附加属性的命名空间,它们是非常不同的源代码结构:模块反应了整个文件,而类只是文件内的语句。我们会在这一部分稍后介绍这种区别。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文