小编sum*_*mid的帖子

logging.handlers:如何在time或maxBytes之后翻转?

我对伐木有点困难.我想在一段时间后以及达到一定尺寸后滚动日志.

经过一段时间后进行翻转TimedRotatingFileHandler,并在达到某个日志大小后进行翻转RotatingFileHandler.

但是TimedRotatingFileHandler没有属性maxBytes并且在RotatingFileHandler一段时间后不能旋转.我还尝试将两个处理程序添加到记录器,但结果是双重记录.

我错过了什么吗?

我也查了一下源代码logging.handlers.我尝试子类化TimedRotatingFileHandler并覆盖该方法shouldRollover()以创建具有以下两种功能的类:

class EnhancedRotatingFileHandler(logging.handlers.TimedRotatingFileHandler):
    def __init__(self, filename, when='h', interval=1, backupCount=0, encoding=None, delay=0, utc=0, maxBytes=0):
        """ This is just a combination of TimedRotatingFileHandler and RotatingFileHandler (adds maxBytes to TimedRotatingFileHandler)  """
        # super(self). #It's old style class, so super doesn't work.
        logging.handlers.TimedRotatingFileHandler.__init__(self, filename, when='h', interval=1, backupCount=0, encoding=None, delay=0, utc=0)
        self.maxBytes=maxBytes

    def shouldRollover(self, record):
        """
        Determine if rollover should occur.

        Basically, see if the …
Run Code Online (Sandbox Code Playgroud)

python logging handlers

16
推荐指数
2
解决办法
8729
查看次数

如何适应Singleton模式?(弃用警告)

几年前,我在Duncan Booth的 Python中找到了Singleton模式的实现:

class Singleton(object):
    """
    Singleton class by Duncan Booth.
    Multiple object variables refers to the same object.
    http://web.archive.org/web/20090619190842/http://www.suttoncourtenay.org.uk/duncan/accu/pythonpatterns.html#singleton-and-the-borg
    """
    _instance = None

    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super(Singleton, cls).__new__(
                               cls, *args, **kwargs)
        return cls._instance
Run Code Online (Sandbox Code Playgroud)

问题还描述了" 在Python中定义单例的简单,优雅的方法吗? "

我通过子类别使用Singleton:
class Settings(Singleton)
class Debug(Singleton)

最近我对程序做了一些修改并得到了这个警告:

/media/KINGSTON/Sumid/src/miscutil.py:39: DeprecationWarning: 
object.__new__() takes no parameters
cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

我找到了关于弃用的解释(由Guido 解释),__new__其中说参数根本没有使用.传递不需要的参数可能是错误的症状.

所以我决定清除参数:

class Singleton(object):
_instance = None

def __new__(cls):
    if not cls._instance: …
Run Code Online (Sandbox Code Playgroud)

python singleton design-patterns deprecated

15
推荐指数
1
解决办法
3955
查看次数

Python中是否有预定义的URL类?

我在python-modules,Django,Zope或Python中的任何地方寻找类似java.net.URL的东西.我希望它最好是出于语义原因,因为有关程序的分析结果意味着URL在其中起着至关重要的作用.结果是这样的URL类在该程序中也将具有很大的实际用途.

当然我可以自己写这样的课程,但在开始重新发明轮子之前我想环顾四周.

我确实看过urllib2urlparse.它urlparse基本上具有我需要的功能,但它没有将它封装到类中java.net.URL.关于我对我的程序的分析,它是颠倒的.

我看着也进入源代码urlparse的类SplitResultParseResult.它们具有一些基本功能,可用于子类化.但是我必须将其余的urlparse函数重写为子类方法.

我还发现了mxURL - Python的灵活URL数据类型.它非常接近我真正想要的.只是它似乎对我的目的来说太过分了.

有人可以建议另一种选择吗 我应该继续重新发明轮子吗?

我的解决方案

为了获得我的URL类,我基本上做了两件事:

  1. 继承自urlparse.ResultMixin.
  2. 定义仅调用urlparse.urlparse()结果并将结果转换为URL实例参数的函数.

python url urlparse

11
推荐指数
4
解决办法
3827
查看次数

减少使用 jQuery UI 的页面的加载时间

问题:一些 jQuery UI 效果加载很慢,这在第一次加载页面时尤其烦人。

例如,以选项卡小部件为例。有时我可以在页面加载期间使用 jQuery 选项卡在选项卡小部件加载之前看到底层列表(另一个缓慢的猛犸象是手风琴小部件)。我想避免这种情况 - 即以某种方式加快速度,或者减少“JavaScript 繁重”。

我有一个优化按钮小部件的想法。在标记本身中,我可以为它们.button()分配构造函数将分配的所有样式,然后我就不必再调用.button()了。但是,按钮并不是最慢的,因此这不会对我的页面加载时间产生太大影响。

类似问题:

问题 1:是否有一些简单的方法可以在PHP 端准备 jQuery 效果(如选项卡),然后对 jQuery UI 小部件进行一些延迟初始化(以保持选项卡的可点击性)?

问题 2:是否有一些很好的指导方针来避免使用 jQuery UI 来不减慢速度,同时保持良好的用户体验?

php performance jquery-ui jquery-ui-tabs

4
推荐指数
1
解决办法
5772
查看次数

python会自动垃圾收集双链表吗?

背景

我有一个树形结构.在这个树结构中,我将节点的孩子保持为双向链表:

在此输入图像描述
(来源:双链表)

(由于创建此列表的广度优先搜索方法,我选择了此结构.)

问题

现在我担心的是垃圾收集器是否可以自动销毁此列表.当然,我只保留对这三者的根节点的引用.Afaik GC的原理是它收集内存中的数据结构,其中没有指向任何引用.但是在双向链表中,每个节点都是从它的兄弟节点引用的,兄弟节点引用节点.因此总是会引用一个节点,GC永远不会收集它.

垃圾收集器会处理双向链表吗?

如果没有,最简单的收集方式是什么?

相关问题:

为什么Lua使用垃圾收集器而不是引用计数?
Python:修改列表时的内存使用和优化

python garbage-collection doubly-linked-list

3
推荐指数
1
解决办法
676
查看次数