在我看来,这是一个重要的信息,因为类的使用将使它显然是一个例外.此外,在PHP中,类必须扩展Exception类,因此当看到它自己的类时,它显然是一个例外.
尽管如此,开发人员通常会应用后缀"Exception".为什么是这样?
我正在研究PHP框架,目前正在设计错误处理.根据我在SO上所读到的内容,我应该只使用异常情况,特殊情况.因此,输入错误密码时抛出异常是错误的.
当我想向用户返回服务器错误代码时,我是否应该避免使用异常(例如,404 Page Not Found)?如果是这样,我应该编写自己的错误处理类吗?
我正在运行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?从头开始并不是不可能的,但如果可能的话,我显然宁愿避免这种情况.
在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)
第二种情况允许我编写更少的代码行,这将是很好的.(并不是说它实际上有很大不同.)
我创建了一个简单的git repo(让我们称之为repo#1)并克隆它.
如何将repo#3添加到repo#2中,这样当我将repo#2推送到repo#1时,我可以单独复制repo#1,我还可以访问repo#3的历史记录等.
换一种说法.如何创建包含另一个git存储库的git存储库?
我感兴趣的是将依赖注入应用于我当前的项目,该项目使用了MVC模式.
我的控制器将调用模型,因此需要将依赖项注入模型中.为此,控制器必须首先具有依赖项(例如数据库对象).控制器不需要使用其中的一些依赖项(例如数据库对象),所以我觉得不应该给它这种依赖.但是,如果要将它们注入模型对象,则必须具有这些依赖关系.
如何避免将依赖项注入到对象中以便它可以传递它们?这样做会感觉不对,并且可能导致许多依赖项被注入到对象中.
编辑:我正在使用PHP.
architecture model-view-controller design-patterns dependency-injection
我可以成功使用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) 我想翻开以下字典:
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].
我正在开发RESTful框架,并决定如何处理针对资源调用的不受支持的动词.例如,有人试图将PUT转换为只读资源.
我最初的想法是404错误,但错误不是资源无法找到,它存在,只是用户试图错误地使用资源.有更合适的错误代码吗?这种情况最常见的处理方式是什么?
我可以使用以下代码轻松定义我的问题:
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函数,我只会在用户单击"关于"菜单时发生这种情况.