我想让我的程序可插拔.我想使用setuptools的方式,使用鸡蛋.
我已经能够制作一个插件来为某些功能提供替代类,我可以使用它.
我想选择在运行时使用的类; 我的核心模块或任何插件中的一个.我想使用pkg_resources查询这些类的方式:
for entrypoint in pkg_resources.iter_entry_points("myapp.myclasses"):
Run Code Online (Sandbox Code Playgroud)
如何在核心中为我的类创建一个EntryPoint对象并注册它,以便iter_entry_points将以与我的.egg插件类相同的方式返回它?
基本上我想选择一个节点(div),其子节点(h1,b,h3)包含指定的文本.
<html>
<div id="contents">
<p>
<h1> Child text 1</h1>
<b> Child text 2 </b>
...
</p>
<h3> Child text 3 </h3>
</div>
Run Code Online (Sandbox Code Playgroud)
我期待,/ html/div/not/html/div/h1
我有这个,但不幸的是返回孩子,而不是xpath到div.
expression = "//div[contains(text(), 'Child text 1')]"
doc.xpath(expression)
Run Code Online (Sandbox Code Playgroud)
我期待,/ html/div/not/html/div/h1
那么有没有办法简单地使用xpath语法?
我有一些Python代码,它基于来自iCalendar文件的解析的VEvent对象创建一个Calendar对象.
日历对象只有一个方法,可以在解析时添加事件.
现在我想创建一个工厂函数,用于从文件对象,路径或URL创建日历.
我一直在使用iCalendar python模块,它直接在Class上实现工厂函数作为类方法,它返回一个实例:
cal = icalendar.Calendar.from_string(data)
Run Code Online (Sandbox Code Playgroud)
从我对Java的了解很少,这是Java代码中的一种常见模式,尽管我似乎发现对工厂方法的更多引用与实际想要实例化实例的类不同.
问题是,这也被认为是Pythonic吗?或者只是创建一个模块级方法作为工厂函数,它被认为更pythonic?
我是Magento的新手.
检查具有给定增量ID的订单是否已存在的正确方法是什么?
显而易见的方式:
$order = Mage::getModel('sales/order')->loadByIncrementId($reservedOrderId);
if ($order) {
Mage::log('already have order with id ' . $reservedOrderId);
return $order;
}
Run Code Online (Sandbox Code Playgroud)
不起作用,因为我得到了一个新的空模型实例.
什么是magento的正确方法,看看我是否没有这个id的模型?