Форум сайта python.su
0
Здравствуйте!
Имеется класс:
class T(object): m = []
m6=[T() for each in range(100)]
for i in range(3): ____k2=0 ____j=0 ____print "" ____for j in range(2): ________if i!=j: ____________m6[i].m[j]=k2 ____________print m6[i].m[j] ________if i==j: ____________k2=k2+1 ____________m6[i].m[j]=k2 ____________print m6[i].m[j] ________k2=k2+1 print m6[0].m[0]
1-->m6[0].m[0] 2 -- 0 2 -- 0 1 -- 0---->m6[0].m[0](После выполнения цикла)
Отредактировано ingushet (Окт. 30, 2012 13:26:24)
Офлайн
43
массив это он вот?
m6=T() for each in range(100)—
m6=[T() for each in range(100)]
Офлайн
568
И задачу описать не мешало бы, код какой-то странный
Офлайн
0
Почему после того как я присвою значение в цикле, он выдает совершенно другой результат?
Офлайн
568
ingushetВы можете толком объяснить чего Вы добиваетесь и чего у Вас выходит не так? Понять это из кода не представляется возможным.
Почему после того как я присвою значение в цикле, он выдает совершенно другой результат?
Офлайн
0
Есть класс с одним параметром m= . Я создал массив экземпляров этого класса. В цикле пытаюсь для каждого экземпляра заполнить массив m. Собственно в цикле все якобы присваивается, проверяю это printОМ. После цикла пытаюсь вывести элемент массива какого либо экземпляра, а он выводит бред. Заполняет все одним числом.
Офлайн
0
# -*- coding: cp1251 -*- import xlrd import math class Tochki(object): m = range(16); m6=[Tochki() for each in range(100)] k=0;k1=0;k2=0; for i in range(3): k2=6 j=0 print "" for j in range(2): if i!=j: m6[i].m[j]=k2 print m6[i].m[j] else: k2=5 m6[i].m[j]=k2 print m6[i].m[j] k2=k2+1 print "" print m6[2].m[1]
Отредактировано ingushet (Окт. 30, 2012 15:49:02)
Офлайн
568
Вроде нормально все
# -*- coding: utf-8 -*- import random class Foo(object): def __init__(self): self.m=[] l=[Foo() for _ in xrange(1000)] for foo in l: tmp=range(10) random.shuffle(tmp) foo.m=tmp for i in l[:10]: print i.m
Офлайн
568
ingushetА! Догнал, так у тебя m - это атрибут класса, а не объекта, сделай такclass Tochki(object): m = range(16); m6=[Tochki() for each in range(100)]
class Tochki(object): def __init__(self): self.m = range(16);
Офлайн
0
Спасибо, заработало
Офлайн