Форум сайта python.su
Позвольте пресоеденится к дисскусии, чтоб не плодить одинаковые темы.
Сейчас тоже пытюсь вникнуть в классы. Начал решать на первый взгляд тривиальную задачу, но мягко говоря застряд :-\
Пока получилось примерно вот что:
'''This is command line adress book'''
import cPickle as p
class Person:
book={}
def __init__(self,name,tel,adress):
#In this place we initialize new class
self.name=name
self.tel=tel
self.adress=adress
print 'Initialized new value...%s' %self.name
Person.book[name]='Name: "%s"\nTel: "%s"\nAdress: "%s"' %(self.name,self.tel,self.adress)
def show(self,target):
#Intitialize new class(Person) method(show)
print Person.book[target]
def showall(self):
for i in Person.book:
print '>>>',i
def howMany(self):
print 'In my adress book',len(Person.book),'person'
def __del__(self):
print '%s deleted from adress book' %self
del Person.book[self.name]
if len(Person.book) == 0:
print 'Adress book empty.'
else:
print 'In adress book are still %d people left.' % len(Person.book)
def save(self,filename):
k='/home/funtik/'+str(filename)+'.txt'
f=file(k,'w')
p.dump(Person.book,f)
f.close()
def load(self,filename):
k='/home/funtik/'+str(filename)+'.txt'
f=file(k,'w')
new_loc=p.load(f)
new_loc=Person.book
print Person.book
f.close
getstarted=Person(None,None,None)
getstarted.load(input('->'))
Офлайн
Приглядитесь к Вашему методу:
def load(self,filename):
k='/home/funtik/'+str(filename)+'.txt'
f=file(k,'w')
Офлайн
А есчо такой впрос:
И каким способом пользоваться правильно?
f=file('/pathname/')
base_data = open('base.txt')
Отредактировано (Фев. 13, 2010 23:06:11)
Офлайн
Проще было в справку по Python'у заглянуть :-). И file и open - конструкторы объектов типа file, поэтому правильны оба метода, однако: (цитата из справки) “When opening a file, it’s preferable to use open() instead of invoking this constructor directly. file is more suited to type testing (for example, writing isinstance(f, file)).
”
Офлайн