2015-01-12 2 views
0

Как я могу сделать этот код довольно ?:Python Несколько переменных имеет одно значение

AantalCores = "NULL" 
    CPUSSpecNumber = "NULL" 
    Snelheid = "NULL" 
    MaximaleTurboFrequentie = "NULL" 
    GeheugenSpecificatie = "NULL" 
    BusSnelheid = "NULL" 
    Procestechnologie = "NULL" 
    ThermalDesignPower = "NULL" 
    GeïntegreerdeGraphics = "NULL" 
    Gpu = "NULL" 
    NominaleSnelheidVideochip = "NULL" 
    MaximaleSnelheidVideochip = "NULL" 
    CPUCacheLevel1 = "NULL" 
    CPUCacheLevel2 = "NULL" 
    CPUCacheLevel3 = "NULL" 
    Threads = "NULL" 
    Virtualisatie = "NULL" 
    VirtualisatieType = "NULL" 
    CPUMultiplier = "NULL" 
    CPUstepping = "NULL" 
    CPUInstructieset = "NULL" 
    TypeKoeling = "NULL" 

Изменены все это. Я смотрел ваши ответы, ребята, Thanx много! Я почти закончил, мне нужно только правильно перебирать. Можете ли вы, ребята, покажите мне лучший способ, который работает (не мое:

if componentTitle == 'Processoren': 

     properties = {'AantalCores': 'NULL', 'CPUSSpecNumber': 'NULL', 'Snelheid': 'NULL', 'MaximaleTurboFrequentie': 'NULL', 'GeheugenSpecificatie': 'NULL', 'BusSnelheid': 'NULL', 'Procestechnologie': 'NULL', 'ThermalDesignPower': 'NULL', 'GeïntegreerdeGraphics': 'NULL', 'Gpu': 'NULL', 'NominaleSnelheidVideochip': 'NULL', 'MaximaleSnelheidVideochip': 'NULL', 'CPUCacheLevel1': 'NULL', 'CPUCacheLevel2': 'NULL', 'CPUCacheLevel3': 'NULL', 'Threads': 'NULL', 'Virtualisatie': 'NULL', 'VirtualisatieType': 'NULL', 'CPUMultiplier': 'NULL', 'CPUstepping': 'NULL', 'CPUInstructieset': 'NULL', 'TypeKoeling': 'NULL'} 

     if spec.get_text(strip=True) == 'Processorkernen': properties['AantalCores'] = value.text.strip() 
     elif spec.get_text(strip=True) == 'Kloksnelheid': properties['Snelheid'] = value.text.strip() 
     elif spec.get_text(strip=True) == 'Threads': properties['Threads'] = value.text.strip() 

     # I NEED TO ITERATE AL THE KEYS/VALUES INTO THIS NODE (product) 
     for key in properties: 
      product = Node("Component", 'CPU', key=properties[key]) 

Так я должен объявить значения первой или иначе значения не сохраняются в базе данных Neo4j Кроме Нет, не в порядке.. Он пропускает его. После того, как свойства определены, я меняю ТОЛЬКО значения, которые он пересекает. Некоторые страницы не имеют одинаковых ключей/значений. Поэтому после редактирования мне нужно сделать его узловым объектом, чтобы я мог сохранить это с соотношением:

# CREATE RELATIONSHIP NODE OBJECT 
rel = relationNode.rel('Relationship', product, store, price, stock) 
db.create(rel) 
+6

Почему вы все настройки тезиса «» NULL «»? Во-первых, пустое значение в Python является 'None', во-вторых, вам не нужно инициализировать переменные в Python ... – MattDMo

+0

Это потому, что я пытаюсь вставить значения в базу данных тезис Neo4j. Она должна быть там как свойства. Если я не использовать None это даже не спасает, он пропускает свойство и я не имею его в базе данных – FrEaKi

+1

Это может быть ключей в Словаре вместо переменных? Это облегчит – pbkhrv

ответ

-3

Что-то вдоль или то, что вы пытались

Количество сердечников, CPUSSpecNumber, скорость, максимальная Turbo частота, Спецификация памяти, скорость шины , процесс, Thermal Design Power, интегрированная графика, GPU, Номинальная скорость видеочип, Максимальная скорость видео Чип, CPUCacheLevel1, CPUCacheLevel2, CPUCacheLevel3, пряжа, виртуализация, виртуализация Тип, CPUMultiplier, CPUstepping, CPUInstructieset, Тип Холодильная = [ "NULL"] * 22

print AantalCores 
print CPUSSpecNumber 
print Snelheid 

выход

null 
null 
null 
+2

... Это будет работать, но если серьезно, не делает этого. Это ген ралли плохая идея, чтобы закодировать все, что будет позже потребовать от вас рассчитывать элементы в списке. :-) – dylrei

+0

Да, я согласен, но я думаю, что это то, что ОП пытается сделать первоначально –

+1

Это приемлемый ответ лишь несколько очень жестких условиях. Это хорошо, как взломать, чтобы заставить его работать, но если бы я должен был поддерживать что-то закодировано таким образом, я принудил бы мои дети и дети детей не ругаться и не быть другом для оригинала Coder. –

4

Я не знаю, если я бы назвал это лучше, но вот один способ, которым вы могли бы сделать несколько назначить ...

AantalCores = CPUSSpecNumber = Snelheid = MaximaleTurboFrequentie = "NULL" 
GeheugenSpecificatie = BusSnelheid = Procestechnologie = ThermalDesignPower = "NULL" 

И так далее ...

UPDATE:

Вслед за комментарии ниже ...

Вообще, это не очень хорошая идея, чтобы сделать это ... но если у вас было большое количество имен, которые вам нужно было назначить сразу, вы можете начать с них в dict, например:

d = {'AantalCores': 'NULL', 'CPUSSSpecNumber': 'NULL'} 

И тогда, когда вы закончите манипулировать ими в Словаре и нужно их назвать значения, вы можете добавить их к своим местным жителям, таким образом:

import sys 
this_module = sys.modules[__name__] 
for key, value in d.items(): 
    setattr(this_module, key, value) 

Но действительно, это не так, вы должны управляйте своими именами в обычных случаях, и подход, основанный только на dict, должен быть вашим методом первого обращения в любом случае, когда он действительно работает.

+3

Это хорошо работает для неизменных значений zoals строки или числа. Не пытайтесь его изменяемыми значениями zoals списков, хотя, если вы не любите сюрпризы. –

+0

я принимал цель операционной за чистую монету, но это хорошая точка в общем случае. – dylrei

+0

Улучшено мой вопрос, пожалуйста, вы можете еще раз проверить? – FrEaKi

6

Вы могли бы быть лучше использовать словарь, чем несколько отдельных переменных:

FIELDS = {k: "NULL" for k in (
    "AantalCores", 
    "CPUSSpecNumber", 
    "Snelheid", 
    # ... etc. 
)} 

Тогда вы можете получить к ним доступ, например, сFIELDS["AantalCores"], или если вам придется иметь дело со всеми из них в коде, что-то вроде:

for name, value in FIELDS.items(): 
    # do something with name and value 
3

Вы можете вместить все значения в одном массиве, как это:

something = { 
     "ID": 1280, 
     "Another ID": "NULL", 
    } 

И вы можете изменить все значения с одной петлей для по одному или :

for val in something: 
    something[val] = "null or your value" 

something["ID"] = 900000 

Я надеюсь, что это поможет вам, извините за плохой Engl иш.

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