python中在class中使用set()的问题
巴扎黑
巴扎黑 2017-04-17 17:58:51
0
2
400

我写了如下的一段代码:
所有的代码都是在Python3.4下编写的

    class test_set:
        def __init__(self):
            self.data = set()
    
        def start(self):
            myset = set([1,2,3])
            self.data.union(myset)
    t1 = test_set()
    t1.start()
    print(t1.data)

结果输出的是:set()
我想知道为什么这个t1.data不是set{1,2,3},却是没有数据呢?
但是我如果将data修改为list,代码如下:


    class test_set:
        def __init__(self):
            self.data = []
    
        def start(self):
            myset = [1,2,3]
            self.data.extend(myset)
    t1 = test_set()
    t1.start()
    print(t1.data)

程序输出的是:[1,2,3]

想知道在class中使用set(),为什么会出现这种现象。如果要使用set(),这个问题又该如何解决呢?

巴扎黑
巴扎黑

모든 응답(2)
伊谢尔伦

Set.union은 현재 개체를 변경하지 않고 새 집합을 생성합니다.

으아악
小葫芦

이유는 @exudong님 말씀대로입니다.

다음과 같이 변경하는 것이 더 쉽습니다.

으아악

그런데 그래도 궁금한데 self.data{1, 2, 3}로 설정하면 어떨까요?

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿