Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 28, 2014 07:22:33

Metallikus
Зарегистрирован: 2014-11-26
Сообщения: 39
Репутация: +  1  -
Профиль   Отправить e-mail  

Переменные и функции

Но ТС ООП не использует.

Офлайн

#2 Ноя. 28, 2014 19:16:03

kampella
Зарегистрирован: 2014-11-21
Сообщения: 95
Репутация: +  1  -
Профиль   Отправить e-mail  

Переменные и функции

py.user.next

В книгах обычно пишут про переменные вида

global var

Так конечно делать не следует, тк будет трудно проследить знчение переменной.

Если же мы обычную переменную, видимую из функции, попробуем изменить, то результат будет совершенно иной:

var = 'data'
def foo(x): 
    var = 'new data'
    x += var
    return r
>>foo('abc\s')
abc new data
>>print var
data

Офлайн

#3 Ноя. 28, 2014 19:19:54

kampella
Зарегистрирован: 2014-11-21
Сообщения: 95
Репутация: +  1  -
Профиль   Отправить e-mail  

Переменные и функции

Alen
А что толку от **kwargs, мне 10 раз функцию вызывать и каждый раз надо передавать все аргументы почти все одни и теже.

Отредактировано kampella (Ноя. 28, 2014 19:21:37)

Офлайн

#4 Ноя. 28, 2014 20:49:23

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Переменные и функции

kampella
Карринг. functools.partial. Смотрим и втягиваемся

Офлайн

#5 Ноя. 28, 2014 23:32:26

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

Переменные и функции

kampella
А что толку от **kwargs, мне 10 раз функцию вызывать и каждый раз надо передавать все аргументы почти все одни и теже.

Ну так и передавай один словарик.

Офлайн

#6 Ноя. 29, 2014 04:18:31

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

Переменные и функции

kampella
Если же мы обычную переменную, видимую из функции, попробуем изменить
>>> var = [1]
>>> 
>>> def f():
...     print(var)
...     var.append(2)
... 
>>> f()
[1]
>>> var
[1, 2]
>>>



Офлайн

#7 Ноя. 29, 2014 15:59:15

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Переменные и функции

>>> x = 10
>>> def foo():
...     x += 1
...     print x
...
>>> foo()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in foo
UnboundLocalError: local variable 'x' referenced before assignment



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#8 Ноя. 30, 2014 02:31:25

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Переменные и функции

def foo():
    foo.x = 5
    #foo.__dict__['x'] = 5
foo()
print(foo.x)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version