Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.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
帮助识别python模块(预处理器?)“;python-mdg“;_Python - Fatal编程技术网

帮助识别python模块(预处理器?)“;python-mdg“;

帮助识别python模块(预处理器?)“;python-mdg“;,python,Python,在这个图像的背景中,您可以找到一些代码,这些代码看起来像是用扩展python方言编写的,必须使用“python-mdg”进行处理才能得到“正常”的python代码。 Google没有“python-mdg”查询的结果,yandex.ru在缓存中只有一个页面,这里简要地提到了一个示例 python -m dg <<< 'sum $ map int $ str 2 ** 1000' 你知道这是怎么回事吗?我想看看这个工具,但找不到任何链接…python的-m标志指向一个模块d

在这个图像的背景中,您可以找到一些代码,这些代码看起来像是用扩展python方言编写的,必须使用“python-mdg”进行处理才能得到“正常”的python代码。 Google没有“python-mdg”查询的结果,yandex.ru在缓存中只有一个页面,这里简要地提到了一个示例

python  -m dg  <<< 'sum $ map int $ str 2 ** 1000'

你知道这是怎么回事吗?我想看看这个工具,但找不到任何链接…

python的
-m
标志指向一个模块
dg.py
。(尝试
python-m this
,这就像在pythonshell上说
import this


看起来像是
dg.py
是某种自定义语言的解释器。图像的上半部分看起来像是这种“
dg
”语言中的代码片段。它运行在KDE上,似乎使用了Qt库。但是在网上找不到它。

我想这个名字('dg')就是rundom。所以,不要把时间浪费在这些事情上。

很吸引人——但是,正如其他答案所指出的,这是一种完全不被使用和未知的语言。你是如何在截图的背景中找到它的?我得把GIMP中的图像调亮,看看你在说什么

方言有点Python风格-它使用
\uuuu init\uuuu()
来初始化对象,并且似乎有点像Python的
for
循环(虽然这里只用于整数?)-但它至少借用了其他语言中同样多的结构:

  • Ruby中的
    do
    end
    分隔符
  • 在Smalltalk和Ruby中,方法参数只是在方法名称后用空格分隔,而不是用标点符号分隔
  • 由于某种原因,该语言似乎无法处理
    a.b.c
    ,尽管至少自1970年左右c发布以来,此类表达式的操作顺序一直是从左到右的。相反,这种奇怪的语言让你输入
    {a.b}.c
    ,除非我误解了这里的一个特例
  • Lambda函数使用paren和箭头
  • 正则表达式在语法中有直接的支持,使用
    r/../
  • 对于那些看不清楚图像的人,这里有一个片段,展示了上述五个特征(这发生在一层深的大括号内,大括号的开头我们看不到:

    def __init__(self parent: nil) do
        {super}.__init__ parent;
        self.setLayout {QGridLayout};
    
        transform = (t) -> {r/([^>])\n/.sub '\]<br />' t};
    
        for c in (0 4) {self.layout}.setRowStretch    c 1;
        for c in (0 3) {self.layout}.setColumnStretch c 1;
    
        {self.layout}.addWidget {QLabel {transform self.text}} 1 1;
        {self.layout}.addLayout {
            sublayout = {QHBoxLayout};
            sublayout.addWidget {QLineEdit};
            sublayout.addWidget {QPushButton '<…Russian text…>'};
            return sublayout;
        } 2 1;
        {self.layout}.addWidget {QLabel {transform self.footer}} 3 1;
    end;
    
    def\uuuu init\uuuu(自父:nil)do
    {super}.\uuuu init\uuuuuuu父;
    self.setLayout{QGridLayout};
    transform=(t)->{r/([^>])\n/.sub'\]
    't}; 对于(04){self.layout}.setRowStretchC1中的c; 对于(03){self.layout}.setColumnStretch c 1中的c; {self.layout}.addWidget{QLabel{transform self.text}1; {self.layout}.addLayout{ 子布局={QHBoxLayout}; sublayout.addWidget{QLineEdit}; sublayout.addWidget{QPushButton''}; 返回分排; } 2 1; {self.layout}.addWidget{QLabel{transform self.footer}}3 1; 结束;

    我的猜测是,这种语言直接编译成C++,因为在漂亮的语法下面,我看不到任何需要动态语言的东西。

    DG是一种自定义语言,<强>编译成cPython 3.4(或最新)字节码。< /强> < /P>


    链接到GitHub上的项目:

    是的,我知道-m flag的作用。我的问题正是关于dg模块的。我认为这一定是一个广为人知的项目,因为它看起来很有希望。但它也可能是一些未发布的正在进行的工作。嗯,这是可能的。但是当我们从不同的角度对这个项目有两个不同的引用时ces,不同的例子,但具有相同的语言功能…我不认为这个项目是完全未知的。如果它没有搜索引擎的参考,那么它就关闭了,并且只有很少的人知道它。而且人们不会告诉你。所以这是浪费时间。这就是Euler项目的解决方案…:d注:foregroun中的信息翻译d:
    GNU/Linux已被阻止。在您的电脑上检测到专有软件,因此Richard Stallman已将其阻止。若要解除GNU/Linux的阻止,请发送一条短信,其中包含文本“proprietarysoftwaresucks”发送至5555并在下面的字段中输入确认码。取消阻止。警告!尝试重新安装GNU/Linux将导致数据丢失。
    这是对“Trojan.Winlock”类型勒索软件的模仿。在原始图像上,您可以看到,处理后的输出直接传输到“normal”Python解释器,所以它不编译成C++。似乎在处理这个工具后产生了标准的Python代码。第二个例子告诉我们直接解释这种语言的方法。不幸的是,你的答案对我没有用,但至少比简单的“这是浪费时间”要好得多。(;我认为Python一步就转换并编译了后端语言;但是我的猜测很容易出错,而你的猜测肯定是更好的。谢谢!@AlexLaskin:这是正确的答案,你应该接受它。实际上它现在编译成CPython 3.3/3.4字节码。提供的链接也是正确的,但很不幸很抱歉,该项目已被删除。我已将其分叉,您可以在此处找到:@rubik该项目现在未被删除。不久后它已恢复。现在它正在积极开发中。
    def __init__(self parent: nil) do
        {super}.__init__ parent;
        self.setLayout {QGridLayout};
    
        transform = (t) -> {r/([^>])\n/.sub '\]<br />' t};
    
        for c in (0 4) {self.layout}.setRowStretch    c 1;
        for c in (0 3) {self.layout}.setColumnStretch c 1;
    
        {self.layout}.addWidget {QLabel {transform self.text}} 1 1;
        {self.layout}.addLayout {
            sublayout = {QHBoxLayout};
            sublayout.addWidget {QLineEdit};
            sublayout.addWidget {QPushButton '<…Russian text…>'};
            return sublayout;
        } 2 1;
        {self.layout}.addWidget {QLabel {transform self.footer}} 3 1;
    end;