Найти - Пользователи
Полная версия: классы и методы
Начало » Центр помощи » классы и методы
1 2 3
ZigertoN
Доброе время суток. помоги разобратся с заданием. Вобщем надо создать класс CFile, инкапсулирующий в себе такие функции работы с файлами, как Open, Close, Seek, Read, Write, GetPosition и GetLength. Ha базе этого класса создать производный класс CMyDataFile — файл, содержащий в себе данные некоторого определенного типа MyData, а также заголовок, облегчающий доступ к этому файлу. посоветуйте(помогите =) ) как лучше написать программу, демонстрирующую работу с этими классами. Программа должна содержать меню, позволяющее осуществить проверку всех методов классов.
Carzil
В Python ООП не имеет понятия инкапсуляция, потому что все члены класса в Python - public
AlexKiriukha
@Carzil:
#!/bin/env python

class Something(object):
def __init__(self, a):
self.__a = a

if __name__ == '__main__':
s = Something(12)
print(s.__a)
pyuser
AlexKiriukha
@Carzil:
#!/bin/env python

class Something(object):
def __init__(self, a):
self.__a = a

if __name__ == '__main__':
s = Something(12)
print(s.__a)
    print(s._Something__a)
Андрей Светлов
Что вы в это двойное подчеркивание уцепились.
Инкапсуляция - это контракт между разработчиками, а не средство защиты информации.
Уже давно использую только одно подчеркивание для закрытых атрибутов - и мне хватает.
Так что инкапсуляция в Питоне - есть.
PooH
Андрей Светлов
Инкапсуляция - это контракт между разработчиками, а не средство защиты информации.
Уже давно использую только одно подчеркивание для закрытых атрибутов - и мне хватает.
А как боретесь с остальными разработчиками? Ведь за всеми код не просмотришь
Андрей Светлов
Веником по рукам.
А что, строгая инкапсуляция по примеру С++ или Явы гарантирует избавление от кривых рук и плохого дизайна?
ZigertoN
Я новечек в програмирование, с чего посоветуете начать делать это задание.
helm2004
Почитай о классах и представь что класс - это куб. И у него есть свои методы(перемещение в пространстве(x,y,z), клик мышкой, клавишей, молотком ударить его ишшо можно, например) и свойства (длина, ширина, высота, вес) каждый метод - это и есть некая ф-ция в классе, а свойства - переменные. Вот когда этот куб опишешь как класс - вот тогда и поймешь ООП.
python4ik
ZigertoN, может тебе это? надо:
f = open('test.txt', 'w')
sys.stdout = f #перенаправление вывода не на экран, который по умолчанию, а в файл
теперь если ввести print ‘Hello’ , то запишется в файл, а не на экран!
вот ещё что-то нашел в нете:
class OutputManager:
def __init__(self, filename, console):
self.f = open(filename, 'w')
self.con = console

def write(self, data):
self.con.write(data)
self.f.write(data)

new_stdout = OutputManager("test.txt", sys.stdout)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB