考虑到Python 3即将推出,我确信这是大多数python开发人员的主题.一些问题让我们朝着正确的方向前进:
你是否会同时维护python 2和python 3版本,或者你只需要一个python 3版本一旦完成?
如何将日期时间或日期对象转换为python中的POSIX时间戳?有一些方法可以从时间戳中创建一个日期时间对象,但我似乎没有找到任何明显的方法以相反的方式进行操作.
泡泡种类有任何现实世界的用途吗?每当我看到一个提到的,它总是要么:
对于我的学校工作,我做了很多切换计算机(从实验室到笔记本电脑到图书馆).我有点想把这个代码置于某种版本控制之下.当然问题是我不能总是在我使用的计算机上安装其他软件.我可以在拇指驱动器上保留任何类型的版本控制系统吗?我有一个2GB的驱动器,但我可以在必要时获得更大的驱动器.
我正在做的项目并不是特别大.
编辑: 这需要在Windows下工作.
编辑II: Bazaar最终成为我选择的.如果你选择TortoiseBzr,那就更好了.
这似乎是我的壳正在采取的方式太长启动.有什么方法可以对它进行分析,这样我就可以弄清楚是什么让它减慢了这么多?
这是Rob Walker 在这里回答的问题.
假设我声明一个类/结构,如下所示:
struct
{
char A;
int B;
char C;
int D;
};
Run Code Online (Sandbox Code Playgroud)
是否可以安全地假设这些成员将在内存中以完全相同的顺序声明,或者这是否依赖于编译器?我问,因为我一直认为编译器可以随心所欲地做任何事情.
这导致了我的下一个问题.如果上面的例子导致内存对齐问题,为什么编译器不能只是隐式地将它变成这样的东西:
struct
{
char A;
char C;
int B;
int D;
};
Run Code Online (Sandbox Code Playgroud)
(我主要是询问C++,但我也有兴趣听到C答案)
我总是设置类似这样的元类:
class SomeMetaClass(type):
def __new__(cls, name, bases, dict):
#do stuff here
Run Code Online (Sandbox Code Playgroud)
但我刚刚遇到了一个定义如下的元类:
class SomeMetaClass(type):
def __init__(self, name, bases, dict):
#do stuff here
Run Code Online (Sandbox Code Playgroud)
有什么理由比较喜欢一个吗?
更新:请记住,我正在询问有关使用__new__和__init__在元类中的问题.我已经理解了另一个班级中他们之间的区别.但是在元类中,我不能__new__用来实现缓存,因为__new__只在元类中创建类时调用它.
这主要只是一个"检查我的理解"类型的问题.以下是我对Oracle中的CLOB和BLOB的理解:
换句话说,我说有一些二进制数据(在这种情况下是一个pickled python对象).我需要确定的是,当我发送它时,它将完全按照我发送的方式存储,当我收回它时它将完全相同.BLOB是我想要的,对吗?
为此使用CLOB真的可行吗?或者字符编码会导致足够的问题,这是不值得的吗?
我在理解这里的问题时遇到了一些麻烦.我有一些代码使用LINQ从数据库中提取记录,并将它们放入一个被转换为接口的对象中.看起来有点像这样:
public IEnumerable<ISomeObject> query()
{
return from a in dc.SomeTable
select new SomeObject
{
//Assign various members here
} as ISomeObject;
}
Run Code Online (Sandbox Code Playgroud)
当我测试它时,我将返回的IEnumerable放入一个名为results的变量中并运行以下行:
Assert.AreEqual(EXPECTED_COUNT, results.Count());
Run Code Online (Sandbox Code Playgroud)
运行它时,我得到一个System.Security.VerificationException:"操作可能会破坏运行时的稳定性."
我在这里找到了解决方案,这是:
var results = from a in dc.SomeTable
select new SomeObject
{
//Assign various members here
} as ISomeTable;
return results.OfType<ISomeObject>();
Run Code Online (Sandbox Code Playgroud)
这有效,但我无法理解这里发生的事情.为什么我首先得到异常,上面的代码行是如何解决的?MSDN文档似乎表明这是类型安全的问题,但我没有看到以前的代码类型不安全的地方.
更新 我发现的更多信息.如果我返回类型IQueryable,第一个示例有效.这揭示了一点点光什么是走错了,但我仍然感到困惑的原因.为什么编译器不强迫我将IEnumerable转换为IQueryable?
我想Scanner在clojure程序中创建一个Java 类的本地实例.为什么这不起作用:
; gives me: count not supported on this type: Symbol
(let s (new Scanner "a b c"))
Run Code Online (Sandbox Code Playgroud)
但它会让我创建一个像这样的全局实例:
(def s (new Scanner "a b c"))
Run Code Online (Sandbox Code Playgroud)
我的印象是唯一的区别是范围,但显然不是.let和之间有什么区别def?
python ×4
.net ×1
.net-3.5 ×1
algorithm ×1
bubble-sort ×1
c# ×1
c++ ×1
clojure ×1
constructor ×1
datetime ×1
function ×1
init ×1
let ×1
linq ×1
linq-to-sql ×1
lisp ×1
memory ×1
metaclass ×1
migration ×1
new-operator ×1
oracle ×1
posix ×1
profiling ×1
python-2to3 ×1
python-3.x ×1
sorting ×1
usb-drive ×1
windows ×1
zsh ×1