我领先于自己,在我的OSX 10.5.5 Intel Mac上从www.python.org/download/下载并安装了OSX Python 2.6软件包并安装了完整的软件包内容.只有在这之后我才遇到http://wiki.python.org/moin/MacPython/Leopard,说明你应该部分安装软件包以避免干扰系统安装.
我担心我已经通过该安装程序覆盖了系统框架,我记得在发现这一点之后在某处读到了我将丢失OSX系统安装中包含的某些元素而不是Python发行版.
有没有办法扭转这种局面或恢复我可能失去的任何东西?究竟我失去了什么,这会成为一个问题吗?
我最近一直在想,在Java和C#等语言中,它是一种很好的语法糖形式,包含一个"duck"类型作为方法参数类型吗?这看起来如下:
void myFunction(duck foo) {
foo.doStuff();
}
Run Code Online (Sandbox Code Playgroud)
这可能是通过反射调用doStuff()的语法糖,或者它可以以不同的方式实现.Foo可以是任何类型.如果foo没有doStuff()方法,则会抛出运行时异常.关键是,当您需要时,您可以获得更严格的预先指定的接口范例(性能,错误检查),即大多数情况下.与此同时,您将拥有一个简单,整洁的后门来进行鸭子打字,这样您就可以在没有大规模重构的情况下干净地进行初始设计中无法预见的更改.此外,它可能是100%向后兼容并与现有语言结构完全啮合.我认为这可能有助于减少过度设计的简单编程风格,从而导致令人困惑,混乱的API.
这是我的代码:
import datetime
today = datetime.date.today()
print today
Run Code Online (Sandbox Code Playgroud)
这打印:2008-11-22这正是我想要的但是......我有一个列表我正在追加这个然后突然一切都变得"不稳定".这是代码:
import datetime
mylist = []
today = datetime.date.today()
mylist.append(today)
print mylist
Run Code Online (Sandbox Code Playgroud)
这打印出以下内容:
[datetime.date(2008, 11, 22)]
Run Code Online (Sandbox Code Playgroud)
我怎么能得到像"2008-11-22"这样的简单日期呢?
是否有任何公开可用的SOAP 1.2/WSDL 2.0兼容免费Web服务来测试基于Python的soap客户端库(例如Zolera SOAP Infrastructure)?
到目前为止,在我看来,Google Web API可能是唯一的选择.
否则,如何测试符合SOAP 1.2的客户端库?
您是否知道任何教授在UNIX命令行中工作的良好习惯的资源?
编辑:我不是指关于shell或man page的一般书籍.我的意思是你只能看到看专业人员使用命令行的东西.例如,当在两个目录之间频繁更改时,他们使用"pushd"命令,当重复命令时,他们使用"历史".我可以阅读这些命令,但我想养成有效使用它们的习惯.
我有一个类,其中查找实例很昂贵,因此实例被缓存:
class Foo
def self.find(id)
Rails.cache.fetch("Foo.#{id}") do
// some expensive lookup, like an HTTParty request, or a long SQL query
...
end
end
end
Run Code Online (Sandbox Code Playgroud)
这有效,直到Foos有相关的Foos:
class Foo
def children
@child_foo_ids.map { |id| Foo.find(id) }
end
end
Run Code Online (Sandbox Code Playgroud)
我想使用||=缓存来节省重复的旅行:
class Foo
def children
@children ||= @child_foo_ids.map { |id| Foo.find(id) }
end
end
Run Code Online (Sandbox Code Playgroud)
但Rails.cache冻结了找到的Foos,所以在创建和缓存对象后我无法设置实例变量.(即这种方法提出了一个TypeError.)
一种解决方案是parent在我第一次执行昂贵的查找时预先获取,但是当我只需要一个或两个实例时,最终可能会加载一个巨大的对象图.
我觉得这是一个愚蠢的问题,因为它似乎是常识...但没有谷歌搜索我可以放在一起似乎能够给我答案!
我知道如何使用.dump命令从sqlite3数据库中获取数据.但现在我有这个名为export.sqlite3.sql的ASCII文件...我似乎无法将它恢复到我想要的数据库中.
我的目标是将我在一个rails应用程序中的数据传输到另一个应用程序,这样我就不必花费各种时间再次创建虚拟数据...所以我从我的第一个应用程序转储数据,摆脱所有CREATE TABLE语句,并确保我的第二个应用程序上的架构匹配...现在我只需要在那里得到它.
有人会介意帮我吗?当你找到一种方法时,你会告诉我你插入谷歌的是什么,因为我现在正用勺子打开我的脑袋而不是我认为容易找到的东西.
根据文档,该decimal.Round方法使用round-to-even算法,这对于大多数应用程序来说并不常见.所以我总是最终编写一个自定义函数来做更自然的圆半算法:
public static decimal RoundHalfUp(this decimal d, int decimals)
{
if (decimals < 0)
{
throw new ArgumentException("The decimals must be non-negative",
"decimals");
}
decimal multiplier = (decimal)Math.Pow(10, decimals);
decimal number = d * multiplier;
if (decimal.Truncate(number) < number)
{
number += 0.5m;
}
return decimal.Round(number) / multiplier;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道这个框架设计决策背后的原因?
是否有任何内置的圆形半算法实现到框架中?或者可能是一些非托管Windows API?
对于初学者而言,这可能会产生误导,因为他们只是写了一个decimal.Round(2.5m, 0)期望3但结果是2.
我试图测试特定数据集群偶然发生的可能性.一种强有力的方法是蒙特卡罗模拟,其中数据和组之间的关联被随机重新分配很多次(例如10,000),并且使用聚类度量来比较实际数据与模拟以确定ap值.
我已经完成了大部分工作,使用指针将分组映射到数据元素,因此我计划随机重新分配指向数据的指针.问题:在没有替换的情况下采样的快速方法是什么,以便在复制数据集中随机重新分配每个指针?
例如(这些数据只是一个简化的例子):
数据(n = 12值) - A组:0.1,0.2,0.4/B组:0.5,0.6,0.8/C组:0.4,0.5/D组:0.2,0.2,0.3,0.5
对于每个复制数据集,我将具有相同的簇大小(A = 3,B = 3,C = 2,D = 4)和数据值,但会将值重新分配给簇.
为此,我可以生成1-12范围内的随机数,分配A组的第一个元素,然后生成1-11范围内的随机数,并分配A组中的第二个元素,依此类推.指针重新分配很快,我将预先分配所有数据结构,但没有替换的采样似乎是一个可能已经解决过很多次的问题.
逻辑或伪代码首选.
python ×3
.net ×1
algorithm ×1
caching ×1
database ×1
date ×1
datetime ×1
duck-typing ×1
frameworks ×1
import ×1
macos ×1
mysql ×1
osx-leopard ×1
pseudocode ×1
refactoring ×1
rounding ×1
ruby ×1
shell ×1
soap ×1
soappy ×1
sql ×1
sqlite ×1
statistics ×1
unix ×1
web-services ×1
zsi ×1