Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IronPython:除了重要的空格,还有其他选择吗?_Python_Ironpython - Fatal编程技术网

IronPython:除了重要的空格,还有其他选择吗?

IronPython:除了重要的空格,还有其他选择吗?,python,ironpython,Python,Ironpython,为了快速改变业务规则,我将IronPython片段存储在XML文件中。到目前为止,这一切都很顺利,但我开始需要更多的一行表达式 问题是XML和重要的whilespace不能很好地结合在一起。在我放弃使用另一种语言之前,我想知道IronPython是否有替代语法。IronPython没有替代语法。这是Python的一个实现,Python使用显著缩进所有语言都使用显著空白,不知道为什么我们要谈论空白,而这是Python中唯一不常见的缩进。我认为您可以设置属性或使用a来避免其他问题,例如,使用引号和更

为了快速改变业务规则,我将IronPython片段存储在XML文件中。到目前为止,这一切都很顺利,但我开始需要更多的一行表达式


问题是XML和重要的whilespace不能很好地结合在一起。在我放弃使用另一种语言之前,我想知道IronPython是否有替代语法。

IronPython没有替代语法。这是Python的一个实现,Python使用显著缩进所有语言都使用显著空白,不知道为什么我们要谈论空白,而这是Python中唯一不常见的缩进。

我认为您可以设置属性或使用a来避免其他问题,例如,使用引号和更大的等号。

除了前面提到的CDATA部分,还有一个可以根据注释修复损坏的缩进,如果要引用链接文件:

当被称为pindent-r时,它假定它的输入是一个带有块结束注释但缩进混乱的Python程序,并输出一个正确缩进的版本

块结束注释是“end”形式的注释,其中是打开块的关键字。如果开始关键字为“def”或“class”,则函数或类名也可能在块结束注释中重复。下面是一个程序示例,该程序完全添加了块结束注释:

它是用CPython绑定的,但是如果IronPython没有,就从存储库中获取它

>>> from __future__ import braces
  File "<stdin>", line 1
    from __future__ import braces

                                 ^
SyntaxError: not a chance
我想要的就是让我的用户像这样编写代码

嗯。。。不要这样做。你其实并不想要这个。从长远来看,这将导致无休止的小问题,因为您试图将太多内容强制添加到属性中

这样做

<Rule Name="Markup">
    <Formula>(Account.PricingLevel + 1) * .05</Formula>
</Rule>
您应该尽量不要在属性中包含重要的、有意义的内容。作为一般的XML设计策略,您应该使用标记并保存名称和ID等的属性。当您查看做得很好的XSD和DTD时,您会发现属性的使用非常少


将规则主体放在单独的标记中而不是属性中可以省去很多麻烦。它还允许工具提供正确的CDATA区域。使用Altova的XML Spy之类的工具,确保标记的空间得到适当保留。

XML和重要的whilespace不能很好地配合使用吗?真正地为什么不呢?请具体说明你实际遇到的问题。一两个例子可以帮助说明你的情况。我说不出话来。我不知道你们俩是在开我的玩笑,还是完全不知道XML工具和解析器如何处理CDATA区域之外的空白。@Jonathan:CDATA区域之外。。。我看你的傲慢没有改变。@乔纳森:谢谢你举个例子。我没想到你在属性中放了多行代码。您是对的:XML对属性和元素的空格处理非常不同。让问题更明确总是会让你得到更高质量的答案,并有助于避免误解和冲突。好吧,那么我想我必须放弃它,转而去做其他事情。如果你使用ironruby:Damn,你可能还需要给你的用户一些空白敏感度培训。感谢您的警告,这正是让我头疼的事情。xml:space=preserve实际上是默认值,因此不需要指定。我完全按照您的方式来做,xml:space-preserve效果很好。我的规则通常不止一行,所以这是很常见的,我很乐意看到噪音而不是其他东西。虽然我打算将其作为一个选项提供给我的用户,但这并不会改变XML编辑工具仍然会破坏公式元素内的缩进级别的事实。这里也是一样。但说真的,我喜欢JavaScript的一点是,通过使用大括号,它允许您将所有内容放在一行上。可惜还没有一个生产质量的DLR实现。
<Rule Name="Markup">
    <Formula>(Account.PricingLevel + 1) * .05</Formula>
</Rule>