小编Sam*_*Sam的帖子

带有错误代码和错误消息的自定义Python异常

class AppError(Exception):
    pass

class MissingInputError(AppError):
    pass

class ValidationError(AppError):
    pass
Run Code Online (Sandbox Code Playgroud)

...

def validate(self):
    """ Validate Input and save it """

    params = self.__params

    if 'key' in params:
        self.__validateKey(escape(params['key'][0]))
    else:
        raise MissingInputError

    if 'svc' in params:
        self.__validateService(escape(params['svc'][0]))
    else:
        raise MissingInputError

    if 'dt' in params:
        self.__validateDate(escape(params['dt'][0]))
    else:
        raise MissingInputError


def __validateMulti(self, m):
    """ Validate Multiple Days Request"""

    if m not in Input.__validDays:
        raise ValidationError

    self.__dCast = int(m)
Run Code Online (Sandbox Code Playgroud)

validate()和__validateMulti()是验证和存储传递的输入参数的类的方法.从代码中可以看出,当一些输入参数丢失或某些验证失败时,我会引发一些自定义异常.

我想定义一些特定于我的应用程序的自定义错误代码和错误消息,比如

错误1100:"找不到关键参数.请验证您的输入."

错误1101:"找不到日期参数.请验证您的输入"

...

错误2100:"多天参数无效.接受的值为2,5和7."

并向用户报告.

  1. 如何在自定义例外中定义这些错误代码和错误消息?
  2. 如何以我知道要显示的错误代码/消息的方式引发/捕获异常?

(PS:这是Python 2.4.3).


巴斯蒂安伦纳德提到这个SO评论,你并不需要总是定义一个新的 …

python error-handling custom-exceptions

38
推荐指数
2
解决办法
6万
查看次数

使用Tk Grid Geometry Manager的GUI布局

使用Python构建一个供个人使用的小应用程序,并且我想尝试使用Tkinter进行一些GUI编程.这是我到目前为止创建的GUI:

使用Tkinter的GUI布局

应用疑虑:

如何确保屏幕截图中的三个LableFrame - A,B和C具有相同的宽度?(或者更确切地说,宽度等于三个中最宽的?例如,在屏幕截图中,A是最宽的,我希望B和C也一样宽 - 直到D行).

(它不需要动态计算 - 如果我在第一次编码时能够确保宽度相同就足够了.它们不需要在运行时更改.)

Tk Grid Geometry Manager疑惑:

  1. 当您使用框架时,网格(行,列)是否仅特定于框架的大小,还是基于窗体的大小(根窗口)计算?

  2. 如何在网格中确定列的大小?

  3. 我还没有完全理解网格中的'权重'是什么.什么时候应该使用?

Python GUI代码:

import Tkinter

if __name__ == '__main__':
    form = Tkinter.Tk()

    getFld = Tkinter.IntVar()

    form.wm_title('File Parser')

    stepOne = Tkinter.LabelFrame(form, text=" 1. Enter File Details: ")
    stepOne.grid(row=0, columnspan=7, sticky='W', \
                 padx=5, pady=5, ipadx=5, ipady=5)

    helpLf = Tkinter.LabelFrame(form, text=" Quick Help ")
    helpLf.grid(row=0, column=9, columnspan=2, rowspan=8, \
                sticky='NS', padx=5, pady=5)
    helpLbl = Tkinter.Label(helpLf, text="Help will come - ask for it.")
    helpLbl.grid(row=0)

    stepTwo = …
Run Code Online (Sandbox Code Playgroud)

python grid layout user-interface tkinter

12
推荐指数
1
解决办法
2万
查看次数

你可以在PDF文件中嵌入HTML网页吗?

Flash文件可以嵌入PDF文档中.有谁知道是否也可以嵌入HTML网页?

添加:

  • 我的意思不仅仅是一个普通的HTML文档,而是一个带有Javascript的网页.

html pdf flash

6
推荐指数
1
解决办法
1万
查看次数

用于会话管理的Python模块

是否有任何等效的会话管理模块,如Perl的CGI :: Session或Apache :: Session?(我知道大多数python web框架都有自己的实现,但我正在寻找一个可以与任何python应用程序一起使用的独立模块.)

python python-module session-management

5
推荐指数
1
解决办法
7175
查看次数

列表搜索优化

first = [(1, text, text, 1, 2, 3), 
         (1, text, text, 1, 0, 3), ... (6054, text, text, 2, 2, 3)]
second = (1, 2, 3, 4, 5 ... 5412)
Run Code Online (Sandbox Code Playgroud)

有没有更快的方法来做到这一点:

data = [x for x in first if x[0] in second]
Run Code Online (Sandbox Code Playgroud)

python optimization

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

确定另一个时区的本地时间

如何使用在美国服务器上执行的PERL脚本确定各个国家/地区的当前日期和时间?例如,getDTnow()应确定服务器上的当前日期和时间,并使用它来返回各个国家/地区的日期和时间.

PS:如果只使用内置函数,没有任何外部模块,那将是很好的.


结论:日期数学是[使用脏话这里]复杂,容易出错.IRC上的其他perl专家,小组和网络的其他部分证实了以太一直在建议我 - 使用DateTime.DVK的解决方案也非常适合那些不介意搞乱perl环境的人.(注意:虽然在Windows上,Time :: Piece文档的警告部分说当在Win32上Threads中设置$ ENV {TZ}时应该小心).

perl timezone localtime gmt

2
推荐指数
1
解决办法
3763
查看次数