考虑我用来检查存储的错误消息的try/catch块e.
equeryString = "SELECT * FROM benchmark WHERE NOC = 2"
try:
res = db.query(queryString)
except SQLiteError, e:
# `e` has the error info
print `e`
Run Code Online (Sandbox Code Playgroud)
e这里的对象只包含上面的字符串.但是,当python报告未处理的错误时,它会显示一个非常详细的信息,如下所示:
Traceback (most recent call last):
File "fool.py", line 1, in
open("abc.zyz", "r")
IOError: [Errno 2] No such file or directory: 'abc.zyz'
我的问题是,如何获取上述信息(文件和行号等)?或者,如果e包含此信息,它是如何存储在其中的?
据我所知,Git的blob将SHA1哈希作为文件名,以便不复制存储库中的文件.
例如,如果文件A的内容为"abc"并且SHA1散列为"12345",则只要内容不变,则提交/分支可以指向相同的SHA1.
但是,如果将文件A修改为"def"以使SHA哈希"23456",会发生什么?Git是否存储文件A和修改过的文件A(不仅仅是区别,而是整个文件)?
以下"Git社区图书"回答了我的大部分问题.
值得注意的是,这与您可能熟悉的大多数SCM系统有很大不同.Subversion,CVS,Perforce,Mercurial等都使用Delta Storage系统 - 它们存储一个提交和下一个提交之间的差异.Git不会这样做 - 它会在每次提交时存储项目中所有文件在此树结构中的外观.这是使用Git时要理解的一个非常重要的概念.
我想用python和c模式自动打开linum模式(Mx linum-mode).我在.emacs中添加以下代码,但它似乎不起作用.
(defun my-c-mode-common-hook ()
(line-number-mode 1))
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
(defun my-python-mode-common-hook ()
(line-number-mode 1))
(add-hook 'python-mode-common-hook 'my-python-mode-common-hook)
Run Code Online (Sandbox Code Playgroud)
可能有什么问题?
我安装了F#2.0.0,并使用mono 2.8.
let rec fib n =
match n with
| 1 | 2 -> 1
| n -> fib(n-1) + fib(n-2)
let n = 40
let x = fib(n)
printfn "%d" x
Run Code Online (Sandbox Code Playgroud)
我用fsc.exe编译了这段代码来获取fib.exe.使用mono fib.exe运行它会给我这个错误.
mono fact.exe Could not load file or assembly 'FSharp.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Unhandled Exception: System.TypeLoadException: Could not load type '.$Factorial' from assembly 'factorial, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
可能有什么问题?
sudo gacutil -i FSharp.Core.dll
解决了这个问题.
我有一个A类,可以通过两种不同的方式生成.
第一种方法将文件路径作为输入从XML文件解析以获取listA和listB.第二种方法有两个列表.
我可以想到两种方法来实现多个构造函数.你怎么看?通常Python人员使用什么方法来处理这种情况?
class A():
def __init__(self, arg1, arg2 = None):
if isinstance(arg1, str):
...
elif isinstance(arg1, list):
...
a = A("abc")
b = A([1,2,3],[4,5,6])
Run Code Online (Sandbox Code Playgroud)
class A2():
def __init__(self):
pass
def genFromPath(self, path):
...
def genFromList(self, list1, list2):
...
a = A2()
a.genFromPath("abc")
b = A2()
b.genFromList([1,2,3],[4,5,6])
Run Code Online (Sandbox Code Playgroud) 有没有办法使用命令行启动不同的emacs模式?例如,是否可以按如下方式运行emacs?
emacs --org-mode # to start orgmode
emacs --python-mode # to start python mode
Run Code Online (Sandbox Code Playgroud)
之后我可以运行emacs来输入'Mx org-mode',但我想知道我是否可以启动不同的模式.
我有NSDate* day1和NSDate* day2.如何NSDate* day3从第1天开始仅复制年/月/日,从第2天复制每小时/分钟/秒?
我有IMessageSender界面.
using System.ComponentModel.Composition;
public interface IMessageSender
{
void Send(string message);
}
Run Code Online (Sandbox Code Playgroud)
我有两个实现此接口的插件.这是plugin.cs.
using System.ComponentModel.Composition;
using System.ComponentModel.Composition.Hosting;
using System.Reflection;
using System;
[Export(typeof(IMessageSender))]
public class EmailSender : IMessageSender
{
public void Send(string message)
{
Console.WriteLine(message);
}
}
Run Code Online (Sandbox Code Playgroud)
这是plugin2.cs
[Export(typeof(IMessageSender))]
public class EmailSender : IMessageSender
{
public void Send(string message)
{
Console.WriteLine(message + "!!!!");
}
}
Run Code Online (Sandbox Code Playgroud)
我有这个代码用MEF运行这些插件.
using System.ComponentModel.Composition;
using System.ComponentModel.Composition.Hosting;
using System.Reflection;
using System.Collections.Generic;
using System;
public class Program
{
[ImportMany]
public IEnumerable<IMessageSender> MessageSender { get; set; }
public static void Main(string[] …Run Code Online (Sandbox Code Playgroud) 使用C++/C,最简单的调试方法是使用cout/printf打印出控制台的内容.
WPF/C#中的等效方法是什么?
我想过使用MessageBox(),但WPF似乎不支持这个功能.我也考虑过使用日志功能,但我不知道它比printf/cout复杂得多.
我可以在Visual Studio中使用断点,即便如此,我需要一些命令来设置断点.
if (ABC())
{
// What command should be here to set a break point?
}
Run Code Online (Sandbox Code Playgroud) 我想在Java中使用构造函数链.例如,对于第一个构造函数,我有一个字符串作为参数,并在我从参数字符串创建一个对象时调用第二个构造函数.
public class IMethodFinder {
public IMethodFinder(String projectName, String methodName,
int numberOfParameters) {
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
IJavaProject javaProject = JavaCore.create(project);
this(javaProject, methodName, numberOfParameters);
}
public IMethodFinder(IJavaProject javaProject, String methodName,
int numberOfParameters) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误"构造函数调用必须是构造函数中的第一个语句"错误.

我制作了一个在两个构造函数之间共享的公共代码,但我不确定这是绕过该问题的唯一解决方案.
public class IMethodFinder {
public IMethodFinder(IJavaProject javaProject, String methodName,
int numberOfParameters) {
dosomething(javaProject, methodName, numberOfParameters);
}
public IMethodFinder(String projectName, String methodName,
int numberOfParameters) {
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
IJavaProject javaProject = JavaCore.create(project);
dosomething(javaProject, methodName, numberOfParameters);
}
private void dosomething(IJavaProject javaProject, …Run Code Online (Sandbox Code Playgroud)