小编Pet*_*rne的帖子

为什么异常通常在类名中带有后缀'Exception'?

在我看来,这是一个重要的信息,因为类的使用将使它显然是一个例外.此外,在PHP中,类必须扩展Exception类,因此当看到它自己的类时,它显然是一个例外.

尽管如此,开发人员通常会应用后缀"Exception".为什么是这样?

php exception naming-conventions

8
推荐指数
2
解决办法
1351
查看次数

抛出异常以返回服务器错误是不好的,例如.404页面不存在?

我正在研究PHP框架,目前正在设计错误处理.根据我在SO上所读到的内容,我应该只使用异常情况,特殊情况.因此,输入错误密码时抛出异常是错误的.

当我想向用户返回服务器错误代码时,我是否应该避免使用异常(例如,404 Page Not Found)?如果是这样,我应该编写自己的错误处理类吗?

php exception http

7
推荐指数
1
解决办法
2340
查看次数

如何将Django从dev降级到1.1

我正在运行Django的开发版本,由于对CSRF所做的更改,文件浏览器应用程序似乎与trunk不兼容.我如何降级到正式版(1.1)?

我正在共享主机,我正在运行Django的方式如下:

~/local/lib/python2.6/site-packages/包含/django/以及其他几个文件夹(每个应用程序一个).

~/local/lib/python2.6/site-packages/ 在python路径上.

/site-packages/其中还有一个/projectname/包含项目文件(manage.py,settings.py等)的符号链接.

我正在使用FastCGI,因此/public_html/我有一个dispatch.fcgi用于调用的django.core.servers.fastcgi.runfastcgi.一个.htaccess文件用于将所有请求重定向到dispatch.fcgi,以便Django可以处理它们.

我尝试删除(移出python路径)/django/,然后下载Django的发布版本并将其放在上一个/django/文件夹所在的位置.这产生了以下错误:

没有名为CSRF的模块.

middleware/csrf.py从中下载/trunk/清除了第一个错误,但随后产生了其他错误.

我应该如何降级到1.1?从头开始并不是不可能的,但如果可能的话,我显然宁愿避免这种情况.

django downgrade

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

在PHP中创建单例时,我可以使用抽象类而不是私有__construct()吗?

在PHP中创建Singleton时,我确保通过执行以下操作无法实例化它:

class Singleton {

    private function __construct() {}
    private function __clone() {}

    public static function getInstance() {}
}
Run Code Online (Sandbox Code Playgroud)

但是,我意识到将类定义为"抽象"意味着它无法实例化.因此,执行以下操作是否有任何问题:

abstract class Singleton {

    public static function getInstance() {}
}
Run Code Online (Sandbox Code Playgroud)

第二种情况允许我编写更少的代码行,这将是很好的.(并不是说它实际上有很大不同.)

php singleton abstract-class

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

创建一个包含另一个git存储库的git存储库

我创建了一个简单的git repo(让我们称之为repo#1)并克隆它.

  • 在克隆(repo#2)中,我创建了几个文件夹,其中一个我决定制作一个git repo(repo#3).
  • 当我提交回购#2时,一切都按预期运行,而忽略了回购#3(.git文件夹,文件提交).

如何将repo#3添加到repo#2中,这样当我将repo#2推送到repo#1时,我可以单独复制repo#1,我还可以访问repo#3的历史记录等.

换一种说法.如何创建包含另一个git存储库的git存储库?

git version-control

5
推荐指数
2
解决办法
1692
查看次数

使用XPath选择没有img标记的元素作为子元素

是否可以选择一个不包含任何带有单行XPath表达式的img标签的h1标签?如果是这样,它是什么?

xpath

5
推荐指数
2
解决办法
1871
查看次数

如何避免将依赖项注入对象以便它可以传递它们?

我感兴趣的是将依赖注入应用于我当前的项目,该项目使用了MVC模式.

我的控制器将调用模型,因此需要将依赖项注入模型中.为此,控制器必须首先具有依赖项(例如数据库对象).控制器不需要使用其中的一些依赖项(例如数据库对象),所以我觉得不应该给它这种依赖.但是,如果要将它们注入模型对象,则必须具有这些依赖关系.

如何避免将依赖项注入到对象中以便它可以传递它们?这样做会感觉不对,并且可能导致许多依赖项被注入到对象中.

编辑:我正在使用PHP.

architecture model-view-controller design-patterns dependency-injection

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

无法使用Python将数据插入sqlite3数据库

我可以成功使用Python创建数据库并运行execute()方法来创建2个新表并指定列名.但是,我无法将数据插入数据库.这是我尝试用于将数据插入数据库的代码:

#! /usr/bin/env python

import sqlite3

companies = ('GOOG', 'AAPL', 'MSFT')

db = sqlite3.connect('data.db')
c = db.cursor()

for company in companies:
    c.execute('INSERT INTO companies VALUES (?)', (company,))
Run Code Online (Sandbox Code Playgroud)

以下是我用于成功创建数据库的代码:

#! /usr/bin/env python

import sqlite3

db = sqlite3.connect('data.db')

db.execute('CREATE TABLE companies ' \
      '( '\
      'company varchar(255) '\
      ')')

db.execute('CREATE TABLE data ' \
      '( '\
      'timestamp int, '\
      'company int, '\
      'shares_held_by_all_insider int, '\
      'shares_held_by_institutional int, '\
      'float_held_by_institutional int, '\
      'num_institutions int '\
      ')')
Run Code Online (Sandbox Code Playgroud)

python sqlite

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

在Python中将一串数字键分成单个数字键

我想翻开以下字典:

dictionary = {
    4388464: ['getting']
    827862 : ['Taruma', 'Varuna']
    ...
}
Run Code Online (Sandbox Code Playgroud)

成:

dictionary = {
    4: {3: {8: {8: {4: {6: {4: {'words': ['getting']}}}}}}}
    8: {2: {7: {8: {6: {2: {'words': ['Taruma', 'Varuna']}}}}}}
    ...
}
Run Code Online (Sandbox Code Playgroud)

这将允许我使用字典:dictionary[8][2][7][8][6][2]['words']而不是:dictionary[827862].

python dictionary

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

我该如何处理资源上不受支持的动词?

我正在开发RESTful框架,并决定如何处理针对资源调用的不受支持的动词.例如,有人试图将PUT转换为只读资源.

我最初的想法是404错误,但错误不是资源无法找到,它存在,只是用户试图错误地使用资源.有更合适的错误代码吗?这种情况最常见的处理方式是什么?

rest http

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

将事件绑定到wx.Menu()而不是绑定到wxPython中的菜单项

我可以使用以下代码轻松定义我的问题:

self.Bind(wx.EVT_MENU_OPEN, self.OnAbout)
Run Code Online (Sandbox Code Playgroud)

这意味着当我点击MenuBar中的任何wx.Menu()时,会调用函数'onAbout()'.如何将此事件绑定到名为wx.MenuAbout()的特定wx.Menu()?

如果您感觉更有帮助,也许您可​​以向我提供事件处理程序文档的链接.我可以找到事件处理函数的文档,但不能找到实际的事件处理程序(例如wx.EVT_MENU).

类似的问题,但我不打算将一系列wx.Menu()绑定到事件:是否可以将事件绑定到菜单而不是wxPython中的菜单项?

编辑:理想情况下,这是我希望能够做到的:

menuAbout = wx.Menu()
self.Bind(wx.EVT_MENU, self.OnAbout, id=menuAbout.GetId())
Run Code Online (Sandbox Code Playgroud)

结果是.menuBar()中的任何其他项(例如:File,Edit,Tools)都可以作为普通菜单使用,但"About"的工作方式类似于可点击链接.

使用wx.EVT_MENU_OPEN意味着可以打开文件菜单,然后当鼠标悬停在'about'上时,会调用self.OnAbout函数,我只会在用户单击"关于"菜单时发生这种情况.

python wxpython

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