小编mwo*_*e02的帖子

Python中类的"缓存"属性

我在python中编写一个类,我有一个属性需要相对长的时间来计算,所以我只想做一次.此外,它会不会被类的每个实例需要的,所以我不想在默认情况下做到这一点__init__.

我是Python新手,但不是编程.我可以很容易地找到一种方法来做到这一点,但我一次又一次地发现,使用我在其他语言中的经验,"Pythonic"做事的方式通常比我想象的要简单得多.

在Python中有没有"正确"的方法呢?

python memoization

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

IsDate函数返回意外结果

怎么来IsDate("13.50")的回报True,但IsDate("12.25.2010")回报False

vb6 vba

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

SqlAlchemy相当于使用FreeTDS的pyodbc连接字符串

以下作品:

import pyodbc
pyodbc.connect('DRIVER={FreeTDS};Server=my.db.server;Database=mydb;UID=myuser;PWD=mypwd;TDS_Version=8.0;Port=1433;')
Run Code Online (Sandbox Code Playgroud)

以下失败:

import sqlalchemy
sqlalchemy.create_engine("mssql://myuser:mypwd@my.db.server:1433/mydb?driver=FreeTDS& odbc_options='TDS_Version=8.0'").connect()
Run Code Online (Sandbox Code Playgroud)

上面的错误消息是:

DBAPIError :(错误)('08001','[08001] [unixODBC] [FreeTDS] [SQL Server]无法连接到数据源(0)(SQLDriverConnectW)')无无

有人可以指点我正确的方向吗?有没有办法告诉sqlalchemy将特定的连接字符串传递给pyodbc?

请注意:我希望保持此DSN-less.

python sql-server sqlalchemy pyodbc freetds

26
推荐指数
4
解决办法
3万
查看次数

MS Access(Jet/ACE)中的无表UNION查询

这按预期工作:

SELECT "Mike" AS FName
Run Code Online (Sandbox Code Playgroud)

这失败,错误"查询输入必须包含至少一个表或查询":

SELECT "Mike" AS FName
UNION ALL
SELECT "John" AS FName
Run Code Online (Sandbox Code Playgroud)

这只是Jet/ACE数据库引擎的怪癖/限制还是我遗漏了什么?

sql ms-access jet

26
推荐指数
3
解决办法
2万
查看次数

使用可选分隔符连接字符串和无/字符串

我基本上寻找与此VB/VBA字符串操作等效的Python:

FullName = LastName & ", " + FirstName
Run Code Online (Sandbox Code Playgroud)

在VB/VBA中+,&它们都是连接运算符,但它们处理Null值的方式不同:

"Some string" + Null ==> Null
"Some string" & Null ==> "Some string"
Run Code Online (Sandbox Code Playgroud)

这个隐藏的功能允许我编写的第一行代码包含所需LastName和可选FirstName值之间的逗号和空格.如果FirstName为Null(Null是Python的无效的VB/VBA),则FullName将设置为LastName,不带尾随逗号.

在Python中有没有一种惯用的方法呢?

技术说明:
gnibbler和eumiro的答案并不完全等同于VB/VBA +&.使用他们的方法,如果FirstName是空字符串("")而不是None,则不会有尾随逗号.在几乎所有情况下,这都优于VB/VBA的结果,即使用空白的FirstName添加尾随逗号.

python string

17
推荐指数
2
解决办法
2万
查看次数

如何在TortoiseHg 2.0.3中直观地区分两个文件修订版?

在TortoiseHg 1.7中,我可以将Hg Repository Explorer指向文件并查看版本列表.选择2个版本并右键单击允许我启动我最喜欢的Visual Diff工具来显示它们的差异.

我最近升级到TortoiseHg 2.0.3并且无法找到除了带有tip版本的工作文件之外的任何视觉差异的方法."修订历史记录"显示了一个类似于旧的Repo Explorer的列表,但似乎没有办法隐藏视觉差异.此功能是否被删除?

diff tortoisehg tortoisehg-2.0

15
推荐指数
2
解决办法
7278
查看次数

亚马逊FPS与PayPal对比Google Checkout

我正处于规划新网站的最初阶段.我想为两个不同的用例提供付款处理:

  1. 以经常性方式接受用户向我支付SaaS功能的费用.
  2. 促进网站用户之间的付款.

向付款用户付款的用户比例约为100:1.我提到这一点是因为我想确保用户很容易付款,但对于想要接收付款的用户可能会遇到一些额外的麻烦.

我还没有确定商业模式,但我正在考虑在上面的用例2中收取一小笔中间人费.我计划使用python框架来实现网站(倾向于django或web2py),所以现有的python模块支持将是一个加号.

我的问题是:我应该使用特定的支付网关(如果是,使用哪个)或者我应该为多个支付网关(以及哪些支持网关)提供支持?

编辑:滚动自己的支付网关有多少噩梦?换句话说,直接接受和处理Visa,MasterCard,Discover等会不会有麻烦?有人有这方面的经验吗?责任/安全问题比他们的价值更麻烦?

django amazon paypal payment-gateway google-checkout

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

在VBA中使用进度表下载文件

我已经找到了很多用几种语言来做这个的例子,但没有一个是VBA特有的.这个问题,如何使用进度条下载VB6中的多个文件?,解决了在VB6中执行此操作的三种不同方法.

  1. 使用VB6 UserControl/UserDocument对象的ASyncRead属性
  2. 使用类型库olelib.tlb和IBindStatusCallback接口
  3. 使用wininet.dll将您自己的下载编写为文件功能

这些方法都不适合我,因为:

  1. VBA无法使用UserControl/UserDocument对象
  2. 我宁愿不必维护和分发大的外部依赖
  3. 我没有看到明显的方法来获得当前的文件下载进度

上面的2号似乎是最有希望的.我想知道我是否可以在我的VBA项目中使用类模块创建IBindStatusCallback接口?

或者可能使用上面的数字3提供可用于提供当前进度的属性/方法.任何帮助深表感谢.

vba download access-vba

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

实现自定义字符串方法

如何将自定义方法添加到内置python数据类型?例如,我想从这个问题实现一个解决方案,但能够按如下方式调用它:

>>> s = "A   string  with extra   whitespace"
>>> print s.strip_inner()
>>> A string with extra whitespace
Run Code Online (Sandbox Code Playgroud)

那么我该如何定义自定义.strip_inner()字符串方法呢?

python

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

Access.Application.Eval()的奇怪行为

解释为什么Access.Application.Eval()(通常缩写为Eval())产生的结果不同于在这种情况下仅评估原始表达式:

Debug.Print Round(.575 * 100)
 57 
Debug.Print Eval("Round(.575 * 100)")
 58 
Run Code Online (Sandbox Code Playgroud)

编辑:为了解决GSerg的答案,以下仍然会返回不同的结果:

Debug.Print Eval("Round(CSng(.575) * 100)")
 57 
Debug.Print Round(CSng(.575) * 100)
 58 
Run Code Online (Sandbox Code Playgroud)

ms-access vba access-vba

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