<MyRusakov.ru />

Создание нейросетей на Python

Создание нейросетей на Python

Этот курс научит Вас созданию нейросетей на Python. Курс рассчитан на начинающих. Вся информация идёт от простого к сложному очень маленькими шажками. При этом глубокое знание математики не требуется. Поскольку в курсе Вы будете получать эти знания по мере необходимости.

Из курса Вы узнаете всю необходимую теорию и терминологию. Научитесь создавать нейросети самых разных архитектур и обучать их. Также Вы создадите собственный фреймворк. Что очень важно проделать для грамотного использования того же PyTorch. Затем Вы изучите и сам PyTorch.

Помимо уроков к курсу идут упражнения для закрепления материала.

Ещё Вы получите Бонусы, дополняющие основной курс: "Распознавание изображений", "Анализ настроения по тексту отзыва", "Программирование на Python с Нуля до Гуру".

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Форум сайта MyRusakov.ru

Создание объекта в классе БД
14.04.2012 23:01:13 Создание объекта в классе БД Сообщение #1
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, вот есть класс работы с БД
<?php
class DB {
private static $msqlicnct;
private function __construct() {
self::$msqlicnct = new Mysqli('localhost', 'root', '', 'beatzone');
return self::$msqlicnct;
}
public static function select() {
new DB();
$b = self::$msqlicnct->query("SELECT * FROM users WHERE id = '2'"->fetch_assoc();
print_r($b);
}
}
DB::select();
?>

класс основан на синглтоне, только вот хотелось бы new DB(); не дублировать в каждом новом методе класса, как его можно создавать один раз? Заранее спасибО)
Профиль
15.04.2012 13:48:47 Создание объекта в классе БД Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Это какой-то испорченный singleton. Надо создать всего 1 статический метод, который создаёт новый объект и записывает в поле, либо если он уже существует возвращает его из поля. Все остальные методы должны быть нестатическими. Вызывали метод, появился объект, а дальше к нему применяете все необходимые методы.
Профиль
15.04.2012 15:29:36 Создание объекта в классе БД Сообщение #3
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Ведь по сути то по синглтону конструктор должен быть private, а статичный метод его создаёт, так ведь? Как тогда обратиться к статическому свойству класса? Ведь если конструктор привэйт, то нельзя создавать объект напрямую
Профиль
15.04.2012 15:30:58 Создание объекта в классе БД Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

К нему надо обратиться только 1 раз в методе, создающем объект. Все остальные методы (уже нестатические) к данному полю вообще не должны обращаться.
Профиль
15.04.2012 15:52:47 Создание объекта в классе БД Сообщение #5
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, по вашему совету исправил ошибки, только вот как тогда обращаться уже непосредственно к самому объекту Mysqli, для выполнения query()?
Через конструкцию в методе insertos() не получается, пишут ошибку наличия метода.
Вот исправленный кодclass DB {
private static $msqlicnct;
private function __construct() {
new Mysqli('localhost', 'root', '', 'beatzone');
}
public static function select() {
if ( is_null(self::$msqlicnct) ) {
self::$msqlicnct = new DB();
}
return self::$msqlicnct;
}
public function insertos() {
$b = self::select();
$b->query("SELECT * FROM users WHERE id = '2'"->fetch_assoc();
echo $b['name'] . " " . $b['secondname'];
}
}
DB::select()->insertos();
Профиль
15.04.2012 16:33:16 Создание объекта в классе БД Сообщение #6
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, посидел, потупил, вот вроде понял, всё работает, скажите, какие замечания есть?
class DB {
private static $msqlicnct = NULL;
private function __construct() {
$this->db = new Mysqli('localhost', 'root', '', 'beatzone');
}
private function __clone() {}
private function __wakeup() {}
public static function select() {
if ( is_null(self::$msqlicnct) ) {
self::$msqlicnct = new DB();
}
return self::$msqlicnct;
}
public function insertos() {
$b = $this->db->query("SELECT * FROM users WHERE id = '2'"->fetch_assoc();
echo $b['name'] . " " . $b['secondname'];
}
}
DB::select()->insertos();
Профиль
15.04.2012 17:22:36 Создание объекта в классе БД Сообщение #7
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Теперь всё хорошо, только вот так писать можно, если Вы вызываете объект всего 1 раз:
DB::select()->insertos();
В противном случае, надо просто записать объект в переменную и дальше уже применять методы:
$db = DB::select();
$db->insertos();
$db->insertos();
Профиль
15.04.2012 17:26:19 Создание объекта в классе БД Сообщение #8
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Спасибо Михаил)) Это просто каркас))) Далее уже методы будут дописываться и класс будет использоваться для всего проекта)
Профиль