Форум сайта python.su
У меня такой код работает:
def load(ifile):
fh = file(ifile, 'r')
content = fh.read()
fh.close()
return content
import cPickle as pickle
class Foo():
...
def load(q):
try:
return pickle.loads(load(q.dump_filename))
except:
return False
import cPickle as pickle
class Foo():
...
def load(self):
try:
self = pickle.loads(load(self.dump_filename))
return True
except:
return False
Офлайн
Я не понял проблемы…
pickle.load(file(self.dump_filename))
Отредактировано (Апрель 21, 2008 00:52:01)
Офлайн
Ну не работает просто 2ой метод. Хотелось бы именно сделать метод для замены себя(self) в классе, а нен статический метод
Офлайн
nerezusЭтот код и не должен работать - в метод передается переменная self (которая принципиально ни чем не отличается от других переменных, передаваемых в качестве параметра), далее идет переопределение этой переменной, и на этом все. Это значит, что созданный объект как был, так и остался, но далее (и только в рамках текущего метода!), под именем self, будет существовать уже другой, вновь созданный объект.
(предложенный вариант не пашет):
import cPickle as pickle
class Foo():
…
def load(self):
try:
self = pickle.loads(load(self.dump_filename))
return True
except:
return False
Офлайн
Понял, жаль (
Офлайн