小编Pet*_*te 的帖子

为什么PyLint警告没有__init__?

我们有许多似乎不需要的python类__init__,将它们初始化为空是完全可接受的甚至是更好的.PyLint似乎认为这是一件坏事.我错过了一些有关为什么不是__init__一个坏气味的见解?或者我应该只是压制这些警告并克服它?

python pylint

20
推荐指数
1
解决办法
8439
查看次数

我应该使用XPath还是只使用DOM?

我有一堆存储在XML文件中的分层数据.我正在使用TinyXML将其包装在手工制作的类之后.给定一个XML片段,将源签名描述为一组(频率,级别)对,如下所示:

<source>
  <sig><freq>1000</freq><level>100</level><sig>
  <sig><freq>1200</freq><level>110</level><sig>
</source>
Run Code Online (Sandbox Code Playgroud)

我用这个提取对:

std::vector< std::pair<double, double> > signature() const
{
    std::vector< std::pair<double, double> > sig;
    for (const TiXmlElement* sig_el = node()->FirstChildElement ("sig");
        sig_el;
        sig_el = sig_el->NextSiblingElement("sig"))
    {
        const double level = boost::lexical_cast<double> (sig_el->FirstChildElement("level")->GetText());
        const double freq =  boost::lexical_cast<double> (sig_el->FirstChildElement("freq")->GetText());
        sig.push_back (std::make_pair (freq, level));
    }
    return sig;
}
Run Code Online (Sandbox Code Playgroud)

其中node()指向<source>节点.

问题:我是否会使用XPath库来获得更整洁,更优雅,更易于维护或更好的代码?

更新:我已经尝试过两种方式使用TinyXPath.它们都没有实际工作,这显然是对他们的一个重点.我做了一些根本错误的事吗?如果这是XPath的样子,我认为这对我没有任何帮助.

std::vector< std::pair<double, double> > signature2() const
{
    std::vector< std::pair<double, double> > sig;
    TinyXPath::xpath_processor source_proc (node(), "sig");
    const unsigned n_nodes = source_proc.u_compute_xpath_node_set();
    for (unsigned i = …
Run Code Online (Sandbox Code Playgroud)

c++ xml xpath tinyxml

9
推荐指数
1
解决办法
7812
查看次数

为什么我在模板中使用静态方法获取CS0119?

为什么这个(人为的)示例给出了"错误CS0119:'T'是'类型参数',在此上下文中无效".当然我告诉它类型会有一个合适的方法吗?

abstract class Foo
{
   static public bool IsIt() {return true;}
}

class Bar
{
   public bool CanIt<T>() where T : Foo
   {
       return T.IsIt();
   }
}
Run Code Online (Sandbox Code Playgroud)

实际的激励示例是模板参数中涉及CRTP的更复杂的事情,但这显示了问题.

c#

3
推荐指数
1
解决办法
8641
查看次数

标签 统计

c# ×1

c++ ×1

pylint ×1

python ×1

tinyxml ×1

xml ×1

xpath ×1