Форум сайта python.su
0
Здравствуйте.
Изучаю самостоятельно программирование на Питоне. Кое-что непонятно, поэтому буду признателен за помощь.
1) Не могу разобраться, через какую библиотеку нужно работать с БД MySQL. Чем MySQLdb отличается от MySQLConnector? Я только понял, что последняя - это разработка Oracle, и только для версии Питона 3.4. А чем пользоваться?
2) Нигде четко не находил, но я так понял, что имена и методы что начинаются со знака подчеркивания - это служебные символы и их нельзя использовать? То есть что-то типа __cutLine() - это по-джентельменски закрытая функция?
Спасибо.
Офлайн
857
netvishttps://pypi.python.org/pypi/PyMySQL/0.7.11
Чем MySQLdb отличается от MySQLConnector?
netvisЧерез устойчивую и свободную, которую не бросят разработчики.
Не могу разобраться, через какую библиотеку нужно работать с БД MySQL.
Толчком к созданию стала необходимость обеспечения свободного статуса СУБД, в противовес политике лицензирования MySQL компанией Oracle. Основателями проекта выступили первоначальные разработчики MySQL.
Отредактировано py.user.next (Ноя. 7, 2017 02:20:50)
Офлайн
857
netvisЭто во всём программировании так (касаемо языков программирования - как части всей теории программирования). Есть одно подчёркивание, его не используют, потому что оно может наскочить на уже существующие служебные имена, определённые в компиляторах. Поэтому используют двойное подчёркивание, чтобы вводить именно пользовательские служебные имена. Служебные имена - имена, не предназначенные для использования пользователем (программистом-пользователем), их программа использует для себя. Это в общем контексте, для “всех языков”.
То есть что-то типа __cutLine() - это по-джентельменски закрытая функция?
>>> class A: ... _x = 1 ... __y = 2 ... >>> class B(A): ... def m1(self): ... print(self._x) ... def m2(self): ... print(self.__y) ... >>> b = B() >>> b.m1() 1 >>> b.m2() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 5, in m2 AttributeError: 'B' object has no attribute '_B__y' >>>
>>> class A: ... def __add__(self, v): ... print('Ко мне "прибавили"', v) ... >>> A() + 1 Ко мне "прибавили" 1 >>>
Отредактировано py.user.next (Ноя. 7, 2017 02:43:26)
Офлайн
0
Спасибо большое!
Офлайн