动态添加属性中内置类型对象与自定义对象的区别

2024-09-30 01:34:05 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个自定义类Box

class Box(object):
    pass

我尝试添加一个属性prop

box = Box()
box.prop = 1     # works
print(box.prop)  # 1

但是如果我在int对象上做同样的事情:

num = 1
num.prop = 1

结果

AttributeError: 'int' object has no attribute 'prop'

问题:

  1. 如何解释numbox之间的行为差异?你知道吗
  2. 如何使自定义类(Box2)的行为类似于int,即在box2 = Box2(); box2.prop = 1之后提升AttributeError?你知道吗

Tags: 对象box属性objectpassnumclassint

热门问题