2013-10-16 66 views
1

我刚开始OOP和我很困惑与我为什么不能增加新的变量对象不属于类?如果类是一个蓝图,这个代码 -OOP实例更新

class cartesianPoint: 

     pass 

cp1 = cartesianPoint() 

cp1.x = 1.0 

cp1.y = 2.0 

cp1 

> 
<__main__.cartesianPoint instance at 0x0000000001E7EB88> 

首先对象,不应该对象跟随buleprint?即使Python允许你这样做,为什么对象仍然属于同一个类?

回答

1

检查9.4节在这里:http://docs.python.org/2/tutorial/classes.html

注意,客户可向一个实例对象添加他们自己的数据属性而不会影响方法的有效性,只要名字冲突避免

cp1确实是CartesianPoint类的一个实例,但是您已将2个新数据成员添加到该特定实例,该类对该类本身或任何后续实例都没有影响。

请记住,CartesianPoint类的每个实例都有自己的字段和方法字典。

+0

但是为什么cp1仍然是cartesianPoint的一个实例,即使在添加了两个特定于cp1的数据记忆之后? – user2688772

+0

检查该链接:http://rosettacode.org/wiki/Add_a_variable_to_a_class_instance_at_runtime#Python – Rami

+0

不是很有用的链接,仍然没有回答这个问题 – user2688772