首页 > 解决方案 > 在 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中不好的编码习惯吗?

标签: pythonclassoopstatic

解决方案


推荐阅读