Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 10, 2017 19:55:24

asdfr
Зарегистрирован: 2017-01-03
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

простая задача по классам

Написать класс Weights, который представляет собой весы, на которые можно класть гири разной массы.
У него есть метод addWeight(w) - положить гирю с весом w килограмм,
метод getTotalWeight() - возвращающий суммарный вес всех гирь,
и метод clear() убирающий все гири.
+ конструктор не забудь

подсказка: внутри класса должно быть числовое поле w, в котором ты будешь накапливать текущий вес. w будет меняться с каждым вызовом addWeight и обнуляться с вызовом clear

 class Weights:
    
    def __init__(self):
        
        self.a=0
        
        
    def addWeight(self,w):
        self. a-= w
        
p = Weights()
p.addWeight(2)
print (p. a)
пытался вот так
помогите разобраться.с ооп первый раз имею делло

Офлайн

#2 Янв. 10, 2017 20:01:54

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

простая задача по классам

У Вас пошло нормально.
self.a поменять на self.w
При добавлении Вы что делаете? Неужели вес на весах уменьшается???

Отредактировано 4kpt_IV (Янв. 10, 2017 20:10:42)

Офлайн

#3 Янв. 10, 2017 20:11:23

asdfr
Зарегистрирован: 2017-01-03
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

простая задача по классам

4kpt_IV
У Вас пошло нормально.self.a поменять на sel.wПри добавлении Вы что делаете? Неужели вес на весах уменьшается???
все понял)))
a getTotalWeight() метод который накапливает вес.как лучше написать? не могу разобраться.

Офлайн

#4 Янв. 10, 2017 21:35:36

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

простая задача по классам

Он просто должен вернуть значение self.w, в которое накапливал данные…

Офлайн

#5 Янв. 10, 2017 23:17:23

asdfr
Зарегистрирован: 2017-01-03
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

простая задача по классам

простите за тупость(не совсем понял . но как та так?

 class Weights:
    
    def __init__(self):
        
        self.a=0
        
        
    def addWeight(self,w):
        self. a+= w
        
    def getTotalWeight(self):
        self.a
        
p = Weights()
p.addWeight(2)
p.addWeight(7)
p.addWeight(12)
print (p. a)
p.getTotalWeight()
print(p.a)
зачем метод def getTotalWeight(self):
self.a делать если и так все сохраняется в def __init__(self):
self.a=0
а метод clear я могу просто создать def clear(self) : self.a=0

Офлайн

#6 Янв. 10, 2017 23:34:20

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

простая задача по классам

 #
class Weights:
    def __init__(self):
        self.weight = 0
    def addWeight(self, g):
        self.weight += g
    def getTotalWeight(self):
        return self.weight
#
p = Weights()
p.addWeight(2)
p.addWeight(7)
p.addWeight(12)
print(p.getTotalWeight())

Для первого раза сойдет.

P.S. Ну и усложним задачу. Если хотите. Сделать так, чтобы хранились гирьки в той последовательности, в которой добавляли. Добавить метод getWeightInfo() который бы возвращал такую информацию. Ну и предыдущие придется переписать
P.P.S. Когда Вы сделаете дополнительную задачу Вы поймете зачем нужен getTotalWeights…

Отредактировано 4kpt_IV (Янв. 10, 2017 23:37:25)

Офлайн

#7 Янв. 11, 2017 02:32:18

asdfr
Зарегистрирован: 2017-01-03
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

простая задача по классам

4kpt_IV
спасибо большое

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version