Форум программистов, компьютерный форум, киберфорум
Наши страницы

Python

Войти
Регистрация
Восстановить пароль
 
kqest
0 / 0 / 0
Регистрация: 23.11.2016
Сообщений: 31
Завершенные тесты: 2
#1

Инкапсуляция - Python

23.06.2017, 14:03. Просмотров 331. Ответов 4
Метки нет (Все метки)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import random
class Pasvagon():
 
    def __init__(self, name, capacity, procent):
 
        self.__name = name
        self.__capacity = capacity
        self.__procent = procent
 
 
    def changeProcent(self):
        return self.__capacity - (self.__procent * self.__capacity/100)
 
    def __str__(self):
 
        return "\n\nPasVagon" + "\nName: " + str(self.__name) +\
    "\nCapacity: " + str(self.__capacity)
 
class Train():
 
    def __init__(self, train=[]):
        self.__train = train
 
    def getTrain(self):
        return self.__train
 
    def setTrain(self, train):
        self.__train = train
 
    @staticmethod
    def appendTo(train, vagon):
        lst = train.getTrain()
        lst.append(vagon)
        train.setTrain(lst)
 
    @staticmethod
    def create():
        
        train = Train()
        vagon1 = Pasvagon("Пассажирский",
                          random.randint(100,150), random.randint(2,5))
 
        vagon2 = Pasvagon("Грузовой",
                          random.randint(100,150), random.randint(2,5))
        
        Train.appendTo(train,vagon1)
        Train.appendTo(train,vagon2)
 
        return train
 
 
    def __str__(self):
        string = "Train"
        for i in self.__train:
            string += i.__str__()
        return string
 
 
train=Train.create()
print(train)
При замене
train=[] на
Python
1
 train={ }
выдает ошибку,
как сделать так чтобы можно было использовать и [] и { } на том месте и программа не ломалась?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2017, 14:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Инкапсуляция (Python):

Инкапсуляция - Java SE
Я понял, что такое инкапсуляция. Понял что такое сеттер, и для чего он работает. Но для чего геттер? Он возвращает значение? Какое...

Инкапсуляция - Delphi
Прочитал что инкапсуляция в делфи осуществляется путем занесения полей и методов в раздел private, однако все равно понять не могу что к...

инкапсуляция - C++
Возможно ли определение пользовательского типа, чтобы им можно было пользоваться только внутри класса? На например class aaaa { ...

Инкапсуляция. - C++
Написать программу имитирующую работу банковского счета методом инкапсуляции. Программа должна быть сделана в консольном приложении. И...

Инкапсуляция - Java SE
Приятелю задали задачу Реализуйте класс quantity, инкапсулирующий количество товаров с поддержкой различных типов единиц измерения....

Инкапсуляция - Delphi
Требуется произвести проверку данных в Edit1 Edit2 Edit3 Выбивает ошибку некорректных данных unit Unit1; interface

4
alex925
2619 / 2270 / 540
Регистрация: 19.03.2012
Сообщений: 8,815
23.06.2017, 16:39 #2
Цитата Сообщение от kqest Посмотреть сообщение
как сделать так чтобы можно было использовать и [] и { } на том месте и программа не ломалась?
ЧТА!?!? Ты понимаешь, что ты говоришь о двух совершенно разных коллекциях, с разными интерфейсами?
0
Avazart
Эксперт С++
7585 / 5570 / 330
Регистрация: 10.12.2010
Сообщений: 24,991
Записей в блоге: 17
24.06.2017, 13:38 #3
Цитата Сообщение от kqest Посмотреть сообщение
как сделать так чтобы можно было использовать и [] и { } на том месте и программа не ломалась?
__eq__, __le__, __gt__ и другие операторы сравнения определить ?

А вообще ты заставляешь гадать ...
Конкретный код? Конкретное описание ошибки ?
0
Ryker
3 / 3 / 1
Регистрация: 20.05.2017
Сообщений: 27
30.06.2017, 02:40 #4
У него добавление в список при изменение на словарь пишет нетути атрибута аппенд. Работа со списком и словарям разная.
При чем тут инкапсуляция?
0
Рыжий Лис
Просто Лис
887 / 425 / 125
Регистрация: 17.05.2012
Сообщений: 1,711
Записей в блоге: 4
30.06.2017, 08:00 #5
Я понимаю, что это учебный код, но вот пример геттера/сеттера:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Train(object):
    def __init__(self, train=[]):
        self.__train = train
 
    def get_train(self):
        print('get_train')
        return self.__train
 
    def set_train(self, train):
        print('set_train')
        self.__train = train
 
    train = property(get_train, set_train)
 
 
t = Train([1, 2])
print(t.train)
 
t.train = [3]
print(t.train)
1
30.06.2017, 08:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2017, 08:00
Привет! Вот еще темы с ответами:

Инкапсуляция в ООП - ООП и паттерны
Относятся ли ниже написанные темы Объектно Ориентированного Программирования, к Инкапсуляции? Темы: 1.) Модификаторы доступа. 2.)...

Инкапсуляция dot1q - Cisco
Такая проблема:на главном маршрутизаторе настроена инкапсуляция dot1q на двух субинтерфейсах, он подключен к двум остальным роутерам...

Инкапсуляция строк - C++
Приветствую! Как сделать инкапсуляцию строк? Например: Допустим, для целых чисел можно использовать: enum class Colors { ...

Наследование и инкапсуляция в C++ - C++
Как осуществляется наследование свойств объектов и инкапсуляция в C++?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru