Форум сайта python.su
1
Подскажите. Хорошая ли практика использования переменных в функциях следующим методом:
var = 'data' def foo(x): r = var + x return r
Офлайн
35
def foo(x, var='data'): r = var + x return r
Отредактировано botinag (Ноя. 27, 2014 19:15:34)
Офлайн
1
botinag
Офлайн
1
А ты var какими-то функциями изменять собираешься? Если да, то всё нормально. PEP8 не содержит пункта “Ни при каких условиях не используйте глобальные переменные”
Отредактировано Metallikus (Ноя. 27, 2014 20:17:04)
Офлайн
58
Глобальные переменные не есть айс. Это известно всем. Не использую никогда. В свое время отгреб массу проблем …
P.S. Вижу код с глобальными переменными - закрываю сразу, чтобы карму себе не портить 
Отредактировано 4kpt_II (Ноя. 27, 2014 20:46:47)
Офлайн
1
Тогда так? 
class dater: __var = 'data' def foo(self, x): r = self.get_var() + x return r def get_var(self): return __var
Офлайн
58
Ну почему бы не сделать ее просто атрибутом класса
Ведь доступ к этому атрибуту будут иметь все методы класса…
Ну и как правильно Вы заметили, по соглашению, атрибуты для внутреннего использования начинаются с “__”.
Офлайн
49
kampella
Подскажите. Хорошая ли практика использования переменных в функциях следующим методом:
kampella
Просто бывает что много статичных переменных и не хочется все пихать в аргументы.
Офлайн
58
Alen
Глобальные переменные, во-первых это медленней, во-вторых рано или поздно появится пересечение пространства имен.
Офлайн
857
kampellaЕсть переменные, есть константы. Константы принято именовать верхним регистром. Константы используются часто (re.MULTILINE, tkinter.constants.SOLID).
Хорошая ли практика использования переменных в функциях следующим методом:
int val[100];
int sp = 0;
void stack_push(int num)
{
val[sp++] = num;
}
int stack_pop(void)
{
if (sp > 0)
return val[--sp];
else
return 0;
}
void stack_clear(void)
{
sp = 0;
}
int stack_isempty(void)
{
return sp == 0;
}
Отредактировано py.user.next (Ноя. 28, 2014 01:16:37)
Офлайн