1. Python / Говнокод #18235

    −129

    1. 1
    2. 2
    except Exception:
        raise

    3_14dar, 25 Мая 2015

    Комментарии (6)
  2. Python / Говнокод #18148

    −119

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    import inspect
    
    def phpformat(fmt):
        return fmt.format(**inspect.getouterframes(inspect.currentframe())[1][0].f_locals)
    
    surname = "Бонд"
    name = "Джеймс"
    num = 7
    print(phpformat("{surname}. {name} {surname}. Агент {num:03d}."))

    PHP'шная интерполяция строк теперь и в питоне.

    Родилось в http://govnokod.ru/18147#comment285697

    bormand, 11 Мая 2015

    Комментарии (57)
  3. Python / Говнокод #18135

    −94

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    # Мы хотели бы подключиться к базе данных. Мы не знаем, верны ли логин и пароль
    # Если соединение с базой будет неуспешно, то
    # Он бросит исключение. Обратите внимание, что MyDatabase и DatabaseException
    # НЕ являются реальными классами, мы просто используем их в качестве примеров.
    
    try:
        database = MyDatabase(db_host, db_user, db_password, db_database)
        database_connection = database.connect()
    except DatabaseException:
        pass
    
    if database_connection is None:
        print('The database could not connect')
    else:
        print('The database could connect')

    Часто вы хотите выполнить действие, которое может работать либо завершиться неудачно. Используя None, вы можете проверить успех действия. Вот пример:

    3_14dar, 09 Мая 2015

    Комментарии (20)
  4. Python / Говнокод #18096

    −118

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    def get_a():
        print("Hello goblin")
        return get_a
    
    get_a()()()()()()()()()()()()()

    Осталось понять зачем

    greenx, 30 Апреля 2015

    Комментарии (284)
  5. Python / Говнокод #18061

    −180

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    try:
        ip_port = sys.argv[1].split(':')
        ip = ip_port[0]
     
        if len(ip_port) == 2:
            port = ip_port[1]
        elif len(ip_port) == 1:
            port = "80"
        else:
            raise IndexError
    except IndexError:
        print "Usage: %s <target ip:port>" % sys.argv[0]
        sys.exit(1)

    Эксплоиты. Неиссякаемый источник ГК.

    Я бы сделал так:

    try:
    ip_port = sys.argv[1].split(':')
    ip = ip_port[0]
    try:
    port = ip_port[1]
    except IndexError:
    port = 80
    except IndexError:
    print "Usage: %s <target ip:port>" % sys.argv[0]
    sys.exit(1)

    3_14dar, 25 Апреля 2015

    Комментарии (42)
  6. Python / Говнокод #18050

    −120

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    class Column(object):
        """
            Элемент конфигурации
        """
        def __init__(self, *args, **kwargs):
    
            hid = False
            filters = []
            sorters = []
    
            if len(args) == 3:
                inner_name, verbose_name, width = args
            elif len(args) == 2:
                inner_name, verbose_name = args
                width = 20
            elif len(args) == 4:
                inner_name, verbose_name, width, hid = args
            elif len(args) == 5:
                inner_name, verbose_name, width, hid, filters = args
            elif len(args) == 6:
                inner_name, verbose_name, width, hid, filters, sorters = args
    
            special_attrs = ['locked', 'editable']
    
            self.code = inner_name
            self.name = verbose_name
            self.width = width
            self.hidden = hid
            self.idx = 0
            if sorters:
                sorters.column = self
            if filters:
                filters.column = self
                filters.code = self.code
    
            #здесь хранятся экземпляры фильтров для колонок
            self.filters = filters
            #здесь хранятся экземпляры сортировщиков для колонок
            self.sorters = sorters
    
        def get_config(self):
            ''' ?
            '''
            config = dict()
            config['data_index'] = self.code
            config['header'] = self.name
            config['width'] = self.width
            config['hidden'] = self.hidden
    
            return config

    Разбор параметров

    pycz, 23 Апреля 2015

    Комментарии (3)
  7. Python / Говнокод #18011

    −241

    1. 1
    2. 2
    3. 3
    def __repr__(self):
            # почему здесь бесконечная рекурсия?
            return repr(self.__repr__)

    3_14dar, 17 Апреля 2015

    Комментарии (21)
  8. Python / Говнокод #18004

    −180

    1. 1
    max(0, 0, *list)

    Костыль, чтобы в случае пустого списка возвращало 0

    3_14dar, 16 Апреля 2015

    Комментарии (56)
  9. Python / Говнокод #17977

    −124

    1. 1
    2. 2
    3. 3
    if __name__ == "__main__":
        def f():
            pass

    Динамичненько

    xyilka, 11 Апреля 2015

    Комментарии (11)
  10. Python / Говнокод #17967

    −117

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    self.symbol_ban = {".":".00",  "!":".01",  "@":".02",  "#":".03",  "$":".04",  "%":".05",  "^":".06",
                               "&":".07",  "*":".08",  "+":".09", "\n":".10", "\t":".11", "\"":".12", "\'":".13",
                               "/":".14",  "<":".15",  ">":".16",  '`':".17", '\\':".19",  " ":".20",  "=":".21",
                               "(":".22",  ")":".23"}
    new_path = map((lambda x, y: [x, y]), ["a_"+"".join([j if (j not in self.symbol_ban) else self.symbol_ban[j] for j in i[0]])   for i in path], [j[1] if j[1] in ("dir", "file") else self.Ex(1)    for j in path])

    часть sax парсера xml для экранирования входных данных, писал для бакалаврской. диплом отдали

    socrat775, 09 Апреля 2015

    Комментарии (11)