如何知道何时创建set或frozenset

时间:2016-08-06 07:26:36

标签: python python-2.7

我是Python新手。我正在阅读Python中的建筑技能( Lott )并尝试一些示例。我看到-(void)scenario2{ PGView *viewA = [PGView new]; viewA.backgroundColor = [UIColor yellowColor]; [self.view addSubview:viewA]; PGView *viewB = [PGView new]; viewB.backgroundColor = [UIColor blackColor]; [self.view addSubview:viewB]; viewA.translatesAutoresizingMaskIntoConstraints = NO; viewB.translatesAutoresizingMaskIntoConstraints = NO; NSLayoutConstraint *constraint; [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[viewB(==100)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(viewB)]]; [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[viewB(==100)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(viewB)]]; [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[viewA(==200)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(viewA)]]; [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[viewA(==200)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(viewA)]]; NSLog(@"%d",viewA.hasAmbiguousLayout); NSLog(@"%d",viewB.hasAmbiguousLayout); NSLog(@"%@",viewA); NSLog(@"%@",viewB); } 函数创建了一个可变集和一个不可变的冻结集。我怎么知道我是在创建一个集合还是一个冷冻集?

1 个答案:

答案 0 :(得分:3)

这简直是错误的。 set()内置函数返回一个集合,而不是冻结集合。 frozenset()返回一个冻结集。集合和冻结集都是set types,但它们是不同的集类型。

The Python docs总是可以用来澄清这样的事情,整个list of built-in functions

摘自OP在评论中提到的建筑技能(Lott),强调我的。功能

  

使用set() frozenset()工厂创建集   功能。这些可以应用于任何可迭代容器,其中包括任何序列,dict的键,   甚至是文件。

这里的作者正在使用"设定值"描述set type 的值,因此不表示set()frozenset()做同样的事情 - 它们产生不同集合类型的值,即集合和frozensets。