生成代码的帮助程序。

LangUtil的Python项目详细描述


https://travis-ci.org/Appdynamics/python-langutil.png?branch=develop:target:https://travis-ci.org/Appdynamics/python-langutil

语言实用程序

目前,这个实用程序只输出等效的php代码。

php

importlangutil.php

转换“标量”

php中的标量是任何不是对象的东西(在php中: !is_object(1) === true)。

# Booleanslangutil.php.generate_scalar(True)=='true'langutil.php.generate_scalar(True,True)=='TRUE'# None turns into nulllangutil.php.generate_scalar(None)=='null'langutil.php.generate_scalar(None,True)=='null'# Numbers are untouchedlangutil.php.generate_scalar(1)=='1'langutil.php.generate_scalar(2.5)=='2.5'# Strings use single quotes unless it is necessary to use double quotes# Double quotes are only necessary if the character has any control codeslangutil.php.generate_scalar('php code!')==''phpcode!''langutil.php.generate_scalar('this string has\nnew lines')=='"this string has\nnew lines"'

转换列表、元组、字典等

这些类型在php中都解析为同一类型:“php数组”。这个 generate_array()函数处理递归结构,但可能失败 检测特殊对象的底层结构,除非它们实现 像__dict__()这样的方法。

所有字符串(包括字典的键)将默认为单个 引号,除非需要双引号。

输出将使用新行和两个空格缩进。

langutil.php.generate_array([])=='array();'langutil.php.generate_array(tuple([]))=='array();'langutil.php.generate_array(set(tuple([])))=='array();'langutil.php.generate_array({})=='array();'
列表/集合/元组转换
langutil.php.generate_array([1,2,])

输出:

array(
    1,
    2,
);
字典转换

对于字典,键的顺序是不保证的。在php中,散列是 命令。

langutil.php.generate_array({'special':'\n','special\x05':'a string','key':1,'list':[1,2,3],})

输出:

array(
  'key' => 1,
  'list' => array(
    1,
    2,
    3,
  ),
  "special\x05" => 'a string',
  'special' => "\n",
);

串行化

使用php.serialize(data_arg)在php的special中序列化数据 序列化格式。模块将尝试使用该模块 phpserialize第一个,但是有纯的回退版本 用于简单值的python(不处理类、引用或 “对象”)。

注意,类型listtuplesetdict变为 php数组(序列化格式要求为 列表使它们成为整数,但应该是等价的 php中的“基于整数的数组”(数字键不会变成字符串 钥匙)。

要取消序列化,请使用php.unserialize(str_arg),这需要 phpserialize模块。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么我不能在try/catch中键入多个输入?   当文件名为泰语时,enctype=“multipart/formdata”的java upload file获得了奇怪的文件名   java使用jsp在tomcat中开发kerberos   Java\JSON:无法识别的属性异常:无法识别的字段“CefMessagesGenerators”错误   java在片段中删除工具栏   java ActionListener无法处理所有对象   JAVA调用从其他包继承的类的成员(其他类类型)   java RestyGWT和GWT集成:无法获取资源   java如何检查正在执行的类   java JavaFX自定义节点不呈现子节点   持久性如何在java中非持久地存储列表的内容   java EditText在禁用时恢复为灰色文本