python - 在 python 中,对象和类属性也可以在类定义之外定义,这是一种不好的编码习惯吗?
问题描述
我注意到python中的静态或对象属性也可以在类定义之外定义
class Test:
static_attr=201
def __init__(self):
self.object_attr=20
是类定义,然后我们这样做:
t1=Test()
t2=Test()
t1.new_attr=200000
现在在这之后
print(t1.new_attr)
打印 200000
print(t2.new_attr)
引发错误。对我来说,这是一个非常违反直觉的 OOP 概念,因为它违背了类的目的,因为现在每个对象都可以有一组不同的属性,即使这些属性映射到.__dict__
. 这是python中不好的编码习惯吗?
解决方案
推荐阅读
- android - Sqlite 与 Futurebuilder 和 Listview.Builder - 添加新项目后更新列表视图
- android - Nestedscrollview 内的 Viewpager2 包含两个 Fragment,Recyclerview 有问题
- python - 您的企业 Python 包治理方法是什么?
- javascript - 无法使用 Flask 运行 Javascript 验证
- java - BadSqlGrammarException with namedParameterJdbcTemplate 但不是 psql
- android - Android BottomNavigationView 部分隐藏 RecyclerView 中的最后一项
- javascript - 当 jscript 确认并通过 AJAX 调用 PHP 时如何更新 $_SESSION 值
- firebase - Firebase Firestore:将新数组合并到存储在文档中的数组中?
- html - 如何在我已将 grid-auto-flow 设置为 column 的情况下使用 CSS grid 给出多个列
- sql-server - 密码不得包含超过 SQL Server 中三个连续字符的用户帐户名或用户全名的一部分