我想使用我在这里找到的Python扩展,但是我正在使用Python 3.1,当我尝试编译包中包含的C扩展(_wincon)时,由于所有语法错误,它都无法编译.不幸的是,它是为2.x版本的Python编写的,因此包括诸如PyMember_Get和的方法PyMember_Set,它们不再是Python的一部分.我的问题是我还没有学习C,因此无法弄清楚如何修改代码以使用在Python 3.1中仍然有效的语法.(还有一些像staticforward需要修复的宏,但我认为只需要改变它们static.)因此:我该如何解决这个问题呢?
(请注意,我确实已经研究过各种其他用于Python的Windows控制台界面,例如PyWin32中的win32con扩展),但它们都不符合我的需求,就像这个看起来那么多.)
这是一些奇怪的样本:
#!/usr/bin/ruby
require 'rubygems'
require 'open-uri'
require 'nokogiri'
print "without read: ", Nokogiri(open('http://weblog.rubyonrails.org/')).class, "\n"
print "with read: ", Nokogiri(open('http://weblog.rubyonrails.org/').read).class, "\n"
Run Code Online (Sandbox Code Playgroud)
运行此返回:
without read: Nokogiri::XML::Document
with read: Nokogiri::HTML::Document
Run Code Online (Sandbox Code Playgroud)
没有read返回XML,并且它是HTML?网页被定义为"XHTML过渡",所以起初我认为Nokogiri必须从流中读取OpenURI的"内容类型",但是返回'text/html':
(rdb:1) doc = open(('http://weblog.rubyonrails.org/'))
(rdb:1) doc.content_type
"text/html"
Run Code Online (Sandbox Code Playgroud)
这是服务器返回的内容.所以,现在我想弄清楚为什么Nokogiri会返回两个不同的值.它似乎没有解析文本并使用启发式方法来确定内容是HTML还是XML.
该页面指向的ATOM提要也发生了同样的事情:
(rdb:1) doc = Nokogiri.parse(open('http://feeds.feedburner.com/RidingRails'))
(rdb:1) doc.class
Nokogiri::XML::Document
(rdb:1) doc = Nokogiri.parse(open('http://feeds.feedburner.com/RidingRails').read)
(rdb:1) doc.class
Nokogiri::HTML::Document
Run Code Online (Sandbox Code Playgroud)
我需要能够在不知道它是什么的情况下解析页面,HTML或者提要(RSS或ATOM)并可靠地确定它是什么.我让Nokogiri解析HTML或XML feed文件的正文,但我看到了那些不一致的结果.
我以为我可以编写一些测试来确定类型,但后来我遇到xpaths没有找到元素,但常规搜索工作:
(rdb:1) doc = Nokogiri.parse(open('http://feeds.feedburner.com/RidingRails'))
(rdb:1) doc.class
Nokogiri::XML::Document
(rdb:1) doc.xpath('/feed/entry').length
0
(rdb:1) doc.search('feed entry').length
15
Run Code Online (Sandbox Code Playgroud)
我认为xpaths可以使用XML,但结果看起来也不值得信赖.
这些测试都是在我的Ubuntu盒子上完成的,但我在Macbook Pro上看到过相同的行为.我很想知道我做错了什么,但我没有看到解析和搜索的例子,这给了我一致的结果.谁能告诉我我的方式错误?
所以我的构造函数中有一个带有单个字符串参数的类:
public MyClass(string name)
{
this.Name = name;
}
Run Code Online (Sandbox Code Playgroud)
但我永远不想担心有人初始化一个名为NULL或零长度字符串的MyClass实例.什么是最好的验证参数?使用属性或方法,如果提供了无效参数,您可以随时执行任何操作,返回null或不设置任何内容.但是一旦调用了构造函数,就会创建该对象的实例,无论它是否传递了有效的参数.
如下所示抛出异常最好的方法?或者是否有其他更优选的方法?
public MyClass(string name)
{
if (name == null | name == "") throw new ArgumentException("Name can not be null or blank", "name");
this.Name = name;
}
Run Code Online (Sandbox Code Playgroud)
当然,如果参数无效,我总是可以将名称设置为某些默认名称,如"Unnamed MyClass",但在这种情况下,我宁愿只是阻止一个无效的名称,然后尝试假设一些替代行为.
我想开始编写一些REST Web服务作为提供数据的方式.我想当我的REST Web服务可用时,我的一些Web应用程序和控制台应用程序将能够使用REST Web服务作为数据服务来获取,添加,更新和删除数据到数据库.除此之外,我想添加身份验证功能来识别任何请求.
我的问题是我应该从哪里开始?我看到了Microsoft ADO.Net数据服务.不确定这是一个好的开始吗?有没有可用的例子?
我在grails config.groovy中有这个log4j配置
log4j = {
error 'org.codehaus.groovy.grails.web.servlet', // controllers
'org.codehaus.groovy.grails.web.pages' // GSP
warn 'org.mortbay.log'
appenders {
rollingFile name:'infoLog', file:'info.log', threshold: org.apache.log4j.Level.INFO, maxFileSize:1024
rollingFile name:'warnLog', file:'warn.log', threshold: org.apache.log4j.Level.WARN, maxFileSize:1024
rollingFile name:'errorLog', file:'error.log', threshold: org.apache.log4j.Level.ERROR, maxFileSize:1024
rollingFile name:'custom', file:'custom.log', maxFileSize:1024
}
root {
info 'infoLog','warnLog','errorLog','custom', stdout
error()
additivity = true
}
}
Run Code Online (Sandbox Code Playgroud)
infoLog,warnLog和errorLog来自上一个问题......他们运作良好.
现在我添加新的RollingFile机智名称"自定义"...
我尝试使用log.info("something .... $ {obj}")从我的控制器和服务登录; 但似乎消息没有插入到custom.log中,我是否需要在配置中添加一些内容?
谢谢 !!
我的问题非常基础,就像我现在所知道的那样.
我是Linux的长期用户,但最近才对编程感兴趣.我看到,在Ubuntu软件仓库很多流行的应用程序有-dev包(如洋泾浜-dev的除了洋泾浜).我的问题是:
这些包里有什么?如何下载pidgin-dev帮助开发Pidgin?它是否为创建给定应用程序的插件所需的工具的依赖性检查一样简单?
我希望-dev包中有大量文档,但如果有,我无法弄清楚如何访问它.我正在考虑像man-page这样的东西,但对编辑代码很有用.
任何和所有建议超过欢迎!
我有一个类,其中一个字段需要在初始化对象时初始化,例如需要在对象添加/删除之前创建的列表.
public class MyClass1
{
private List<MyOtherClass> _otherClassList;
public MyClass1()
{
this._otherClasslist = new List<MyOtherClass>();
}
}
public class MyClass2
{
private List<MyOtherClass> = new List<MyOtherClass>();
public MyClass2()
{
}
}
Run Code Online (Sandbox Code Playgroud)
这两个类有什么区别,为什么你会选择一种方法而不是另一种呢?
我通常在构造函数中设置字段,就像在MyClass1中一样,因为我发现更容易在一个地方查看以查看在实例化对象时发生的所有事情,但是在任何情况下都更好地对像在MyClass2中一样直接初始化一个字段?
我正在寻找为我正在进行的项目创建自定义数学库.该项目是用C#编写的,我有点担心C#是否足够快.该库将具有许多自定义数学公式和等式,以应用于非常大的数据集.模拟和矩阵运算也将完成(即蒙特卡罗模拟),因此必须快速.
一种想法是用C++创建数学库并在C#项目中引用这个.dll.我想知道这是否值得付出努力?
我有一些在Windows上编译的源代码.我正在将其转换为在Red Hat Linux上运行.
源代码包含<windows.h>头文件,程序员使用该Sleep()函数等待一段时间.这不适用于Linux.
但是,我可以使用该sleep(seconds)函数,但在几秒钟内使用整数.我不想将毫秒转换为秒.有没有替代睡眠功能,我可以在Linux上使用gcc编译?