Size: a a a

Сообщество Python Программистов

2020 August 31

EA

Eugene Artesius Pask... in Сообщество Python Программистов
Vadim Apenko
Language:
py3


Source:
x = 1

def a():
   x = x + 1
   print(x)

a()


Errors:
Traceback (most recent call last):
 File "166895183/source.py", line 7, in <module>
   a()
 File "166895183/source.py", line 4, in a
   x = x + 1
UnboundLocalError: local variable 'x' referenced before assignment
Единственное, что я знаю - внутри функции внешние переменные можно читать, но нельзя в них писать, пока это не словарь или не лист
источник

Д

Дмитрий in Сообщество Python Программистов
а теперь не устали, лоол
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Дмитрий
а теперь не устали, лоол
источник

R3

Rud 356 in Сообщество Python Программистов
не совсем, она вроде бы и присваиваться должна в верхний скоуп т.к. оттуда значение берется, но оно не понимает надо ли сделать внутри функции переменную или менять оттуда
источник

R3

Rud 356 in Сообщество Python Программистов
вот такой прикол
источник

Д

Дмитрий in Сообщество Python Программистов
пожурить руда это святое)
источник

Д

Дмитрий in Сообщество Python Программистов
солнце должно быть ЯРКИМ и ОСЛЕПЛЯЮЩИМ
источник

R3

Rud 356 in Сообщество Python Программистов
я с такой хуетой сталкивался и из-за этого у меня не получалось пропихнуть сессии внутрь функций не заметно как раз
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Language:
py3


Source:
from dis import dis
dis("""
x = 1
def a():
   x = x + 1
   print(x)
a()""")


Result:
  2           0 LOAD_CONST               0 (1)
             2 STORE_NAME               0 (x)

 3           4 LOAD_CONST               1 (<code object a at 0x7faf865d6ae0, file "<dis>", line 3>)
             6 LOAD_CONST               2 ('a')
             8 MAKE_FUNCTION            0
            10 STORE_NAME               1 (a)

 6          12 LOAD_NAME                1 (a)
            14 CALL_FUNCTION            0
            16 POP_TOP
            18 LOAD_CONST               3 (None)
            20 RETURN_VALUE
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
А, чертила, кишки функции не показывает
источник

Д

Дмитрий in Сообщество Python Программистов
лан, надо ложиться спать, только дневник заполню, а то режим не к черту)
источник

R3

Rud 356 in Сообщество Python Программистов
хм, а нахера объектам функций нужны операторы сравнения, лол
источник

VA

Vadim Apenko in Сообщество Python Программистов
Rud 356
менять переменные из скоупа выше нельзя, а в том скоупе она еще тип не объявлена и произошла залупа
Не совсем
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Rud 356
хм, а нахера объектам функций нужны операторы сравнения, лол
А чо бы и нет?
источник

ОМ

Ольга Мальцева... in Сообщество Python Программистов
привет

встретился в легаси странный кусок
           for port in ports:
               di_iface['members'] |= set([port])
               ifaces['port ' + port]['lag'] = di_iface['num']
при попытке выяснить что есть |= в питоне - меня гугл лесом шлет.
на третьей строке оно падает отдавая ключ. значения под ключами есть. Что за волшебная конструкция |=    ?
источник

R3

Rud 356 in Сообщество Python Программистов
Vadim Apenko
Не совсем
Ну, я не совсем знаю что происходит по этому послушаю с удовольствием точное пояснение
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Ольга Мальцева
привет

встретился в легаси странный кусок
           for port in ports:
               di_iface['members'] |= set([port])
               ifaces['port ' + port]['lag'] = di_iface['num']
при попытке выяснить что есть |= в питоне - меня гугл лесом шлет.
на третьей строке оно падает отдавая ключ. значения под ключами есть. Что за волшебная конструкция |=    ?
var |= other
эквивалентно
var = var | other
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
По аналогии с +=
источник

R3

Rud 356 in Сообщество Python Программистов
Ольга Мальцева
привет

встретился в легаси странный кусок
           for port in ports:
               di_iface['members'] |= set([port])
               ifaces['port ' + port]['lag'] = di_iface['num']
при попытке выяснить что есть |= в питоне - меня гугл лесом шлет.
на третьей строке оно падает отдавая ключ. значения под ключами есть. Что за волшебная конструкция |=    ?
Пересечение сетов вроде
источник

ОМ

Ольга Мальцева... in Сообщество Python Программистов
Бензофуран Гетероцикл
var |= other
эквивалентно
var = var | other
а если и то и то есть то выберет первый?
источник