Найти - Пользователи
Полная версия: Помощь в разборе кода
Начало » Python для новичков » Помощь в разборе кода
1
Konstantin_tr
Уважаемые специалисты, вопрос такого порядка:
Объясните 3 строчку кода, что присваивается свойству hiddenlayer?: в каких случаях используется такая конструкция?
 class A:
def_init_ (self,num_hidden, hidden_layer_bias)
[b]
[i]self.hiddenlayer = B(num_hidden, hidden_layer_bias)
[/i][/b]
class B:
def __init__(self, num_neurons, bias):
 self.bias = bias if bias else random.random()
 self.neurons = []
 for i in range(num_neurons):
 self.neurons.append(Neuron(self.bias))
py.user.next
Konstantin_tr
Объясните 3 строчку кода
У тебя код с ошибками. Код надо писать без каких-либо правок, а потом спрашивать про номер строки. А так у тебя даже класс A повреждён, так как запись def_init_ - это запись def __init__ , которая повредилась.
В общем, пиши код точно, чтобы спрашивать про него.

Konstantin_tr
что присваивается свойству hiddenlayer?
Создаётся объект класса B и присваивается атрибуту hiddenlayer в объекте класса A. Потом объект класса A сможет им пользоваться во время своей основной работы.
Считай, что ты как бы припрятал объект класса B внутри объекта класса A.

Konstantin_tr
в каких случаях используется такая конструкция?
Вообще, так делать не принято, так как нарушается SOLID (модель ООП). Нужно сделать объект класса B снаружи и передать его (уже готовый) в __init__ объекта класса A.

wiki. SOLID

Буква O нарушается. Изменение класса B влечёт за собой изменение класса A.
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