向类传递参数Python实例

下面的代码尝试了对一个类分别传list、int、其他类三种参数,然后改变原始参数,观察类参数的值是否一起发生变化。
[python] view plain copy
  1. class A(object):  
  2.     def __init__(self, list):  
  3.         self.test = list  
  4.           
  5. l = [123]  
  6. a = A(l)  
  7. print a.test  
  8. l.append(4)  
  9. print a.test  
  10. k = 5  
  11. b = A(k)  
  12. print b.test  
  13. k = k + 1  
  14. print b.test  
  15.   
  16. class X(object):  
  17.     def __init__(self):  
  18.         self.a = 1  
  19.         self.b = 2  
  20.         self.c = 3  
  21.           
  22. x = X()  
  23. c = A(x)  
  24. print c.test.a  
  25. x.a = 4  
  26. print c.test.a  

结论是list和其他类的改变会令类参数一起改变,而int不会。
Python中没有指针,所以向类传递参数到底传的是地址还是值应该和传递的类型有关,我认为应该是类似向函数传递参数时的可变参数和不可变参数。
阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页