Tag: питон

Интроспекция Python

Можно ли применить код из импортированного модуля в модуль, который его импортирует? Например, у меня есть модуль Debug, где определен некоторый декоратор для отладки, например: def debug_func(f): def wrapper(*func_args, **func_kwargs): print(f(*func_args, **func_kwargs)) return wrapper Какова идея: было бы полезно, если бы я мог просто import Debug и все функции из текущего модуля будут обернуты декоратором. […]

Что такое Pythonic способ совместного использования состояния внутри одного модуля?

Мне нужно обрабатывать сигналы в моем коде, и я использую global для совместного использования состояний между функциями: exit = False def setup_handler(): signal.signal(signal.SIGTERM, handler) def handler(num, frame): global exit exit = True def my_main(): global exit while not exit: do_something() if __name__ == '__main__': setup_handler() my_main() Есть ли способ избежать глобальной переменной в этом случае? […]

python – введите правильное количество переменных на основе дескриптора функции

У меня есть список переменных и объект функции, и я бы хотел назначить правильное количество переменных в зависимости от функции. def sum2(x,y): return x + y def sum3(x,y,z): return x + y + z varList = [1,2,3] поэтому, если f = sum2, я бы хотел, чтобы он вызывал первые 2 элемента varList, а если f […]

Повысить исключение класса или экземпляр исключения класса, когда аргументы не передаются

Я видел, что иногда возникают поднятые классы, а иногда появляются примеры классов. Какой способ повысить исключение лучше, если вы не хотите добавлять дополнительную информацию в качестве аргументов raise ValueError или raise ValueError() ?

Импортирование модуля времени в два раза

Я видел код с Youtube и задал вопрос. Код ниже импортирует time дважды. время импорта от времени импорта mktime import pandas as pd import os import time from datetime import datetime from time import mktime Импортируя время в третьей строке, я думаю, что 5-я строка бесполезна. Почему он дважды импортирует время?

oauth2client / appengine.py возвращает «InvalidResponseError: значения заголовка должны быть str, получены« unicode »» с помощью webapp2 / python27 / wsgi

Заранее, моя проблема аналогична вопросу Pyramid на App Engine получает: «InvalidResponseError: значения заголовка должны быть str, получены« unicode » и несколько ошибок google-api-python-client , но ни один из них не помог мне в этом деле. ответ на вопрос № 254 (который сам по себе похож на # 111 , поэтому я здесь пытаюсь. В локальном […]

Исключение Python – исключение, если у деления есть остаток?

В Python вы можете: assert a % b == 0 c = a // b Есть ли сокращение для этого? Другими словами, способ сделать целочисленное деление, которое генерирует исключение, если есть остаток? Причина, по которой я спрашиваю, это было бы удобно в таких ситуациях: count = len(self.rawr.foo) / self.this.is.a.long.variable Сейчас я должен сделать временные переменные: […]

Хороший стиль кодирования: используйте временную переменную для длины списка или нет?

Этот вопрос связан с python, но на самом деле он распространен для многих языков. Взгляните на этот код: import sys people = ['John', 'Jack', 'Charles'] cities = ['London', 'Liverpool', 'Manchester'] if (len(cities) != len(people)): print "Error! Length of cities list \ (%s) differs from length of people list (%s)" % (len(cities), len(people)) sys.exit(1) for i […]

Семантика назначения x = y = z в Python

У меня была следующая строка в цикле, возникающем во время инициализации отдельно связанного класса списка: previous = previous.pointer = Node(item, None) Предполагаемая семантика заключалась в том, что я могу получить: previous.pointer = Node(item, None) previous = previous.pointer То, что я узнал, используя pdb, – это то, что previous переназначается в новый объект Node . И […]

Почему python позволяет создавать словари с дублирующимися ключами

Словари в python должны иметь уникальные ключи. Почему вам разрешено это делать … d = {'a' : 'b', 'a' : 'c'} Разве это не должно породить какую-то ошибку?

Python - лучший язык программирования в мире.