Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 10, 2015 09:39:04

alekscooper
Зарегистрирован: 2015-01-25
Сообщения: 66
Репутация: +  1  -
Профиль   Отправить e-mail  

Надо ли инициализировать переменные?

Всем привет!

Так вышло, что сто лет назад я изучал Си/Си++, где переменную надо сначала объявить, указать её тип и, как меня учили, инициализировать, чтобы там в ячейке не болталась какая-то случайная хрень, которая повлияет на дальнейшие вычисления. Ну, говорили или читал я где-то, что инициализировать переменную - хороший тон, типа как писать комментарии к коду или давать переменные понятные имена.

У меня возник вопрос: является ли это правилом хорошего тона в Питоне?

PS А что, админов нет на форуме? Спам слегка утомляет….

Офлайн

#2 Фев. 10, 2015 11:01:44

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Надо ли инициализировать переменные?

alekscooper
в Питоне т.н. строгая динамическая типизация, явно указывать здесь ничего не нужно.

P.S. админы в курсе, вроде капчу сказали поменяют



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Фев. 10, 2015 11:10:22

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Надо ли инициализировать переменные?

alekscooper
чтобы там в ячейке не болталась какая-то случайная хрень
Инициализировать нужно не в определении, а как можно ближе к месту использования. Таких мест может быть несколько.

#include <stdio.h>

void f(void)
{
int i;

/* ... много строк ... */

i = 1;
while (i < 10)
if (i <= 5) {
printf("x");
i++;
} else {
printf("xX");
i += 2;
}
putchar('\n');

/* ... много строк ... */

i = 5;
while (i < 20)
if (i <= 10) {
printf("x");
i++;
} else {
printf("xX");
i += 2;
}
putchar('\n');
}

int main(void)
{
f();
return 0;
}

[guest@localhost c]$ .ansi t.c -o t
[guest@localhost c]$ ./t
xxxxxxXxX
xxxxxxxXxXxXxXxX
[guest@localhost c]$



Отредактировано py.user.next (Фев. 10, 2015 11:22:00)

Офлайн

#4 Фев. 10, 2015 11:11:46

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

Надо ли инициализировать переменные?

alekscooper
где переменную надо сначала объявить

Не нужно. Зачем вам переменная без значения.

alekscooper
указать её тип и, как меня учили, инициализировать

А вы его итак указываете, только не явно.

Тип int:
>>> a = 1

Тип float:
>>> a = 1.0

Тип str:
>>> a = '1'

Тип список(list):
>>> a = [1]

Тип словарь(dict):
>>> a = {'a': 1}

Тип множество(set):
>>> a = {1}

И.т.д, и.т.п

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version