生成代码的帮助程序。

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按对象值分组,计数,然后按最大对象属性设置组键   在Android上处理Firebase DatabaseReference updateChildren OnCompletionListener的java正确方法   java Jetty与WebSocket的区别是什么。sendMessage(字符串数据)和void sendMessage(字节帧,字符串数据)?   与java中的XStream具有相同功能的C#序列化器/反序列化器   java查看是否从父类单击了JButton   java“抓取时超时”URLFetch GAE/J   java Tomcat自定义上下文。xml文件从未被考虑在内   文件java小程序删除(“java.io.tmpdir”)+“myfolder”内容关闭小程序或停止()   java LTV支持PDF格式的签名   java ScrollView不会填充   java如何使用socket创建与平台无关的互斥体?   java增强for(或“for each”)循环迭代到刚删除的元素会抛出错误   java是否可以使用iBATIS中止长时间运行的查询?   java我需要在web应用程序中放置一个文件,以便从servlet读取它吗   java BeanCreationException休眠5。LocalSessionFactoryBean Bean属性“EL”不可写或具有无效的setter方法