<分区> 分区>
#! /usr/bin/python
class my_class:
# 1. __init__
def __init__(self):
self.my_set = set()
# 2. __init__
#def __init__(self, arg_set = set()):
# self.my_set = arg_set
c1 = my_class()
c1.my_set.add('a')
print c1.my_set
c2 = my_class()
c2.my_set.add('b')
print c1.my_set
my_class 有两种定义 __init__ 的方式:
如果我使用第一种方式,输出如预期:
设置(['a'])
设置(['a'])
如果我使用第二种方式,输出是意外的:
设置(['a'])
设置(['a', 'b'])
第二种方法有什么问题?修改 C2(一个单独的对象)如何导致修改 c1?
编辑:更新了问题标题以反射(reflect)关注的特定领域
