为什么允许向已经实例化的对象添加属性?
- 论坛
- 为什么允许向已经实例化的对象添加属性?
13 浏览
为什么允许向已经实例化的对象添加属性?
我正在学习Python,虽然我认为我完全理解了Python的整个概念和概念,但今天我遇到了一段我不完全理解的代码:
假设我有一个类,应该定义圆但缺少主体:
class Circle(): pass
由于我没有定义任何属性,那我怎么能做到这一点:
my_circle = Circle() my_circle.radius = 12
奇怪的是,Python接受了上述语句。我不明白为什么Python没有引发undefined name error
。我确实理解通过动态类型,我可以随时将变量绑定到对象,但是难道不应该在Circle
类中存在一个radius
属性才能允许我这样做吗?
编辑:你们的回答中有很多精彩的信息!非常感谢大家的所有精彩回答!可惜我只能选择一个作为答案。