2015-01-08 3 views
0

Я читаю Погружение в Python3 книга и следующие примеры. В главе 2, Native Datatypes Я пытаюсь, как в примере, создать список из набора.Создать список из установленного

a_list = ['a', 'b', 'mpilgrim', True, False, 42] 
a_set = set(a_list)       
a_set  

Но я получаю TypeError:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'set' object is not callable 

Может кто-то помочь мне понять, почему?

+4

Вы уже назначили что-либо для 'set'? – thefourtheye

+0

Нет .. Я вижу это сейчас. Спасибо за помощь. И спасибо за помощь. – Sysrq147

ответ

5

Где-то в вашем коде, выше эти линии показаны, вы должны сделать это:

set = {...} 
# or 
set = set(...) 

Делать это затмило встроенный set с определенным именем пользователя. Так, название set относится теперь к множеству экземпляра, а не класс:

>>> set # Built-in 
<class 'set'> 
>>> set() # Is callable 
set() 
>>> set = {1, 2, 3} # Built-in is overshadowed 
>>> set 
{1, 2, 3} 
>>> set() # Is no longer callable 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'set' object is not callable 
>>> 

Вы должны найти, где вы сделали это и выбрать другое имя.

+0

Спасибо .. Я смущен для downvetes. Stackoverflow для аматеров и людей, которые тоже учатся. – Sysrq147

+1

Действительно. Но иногда люди опрокидывают вопросы, которые они считают просто глупыми ошибками. Вы не можете прекратить это, так как люди могут понижать ставку по любой причине, которую они выбирают. Я бы просто пылал и двигался дальше. В конце концов, это просто волшебные точки Интернета. :) – iCodez

Смежные вопросы