python支持面向对象程序设计吗,学python一定要用pycharm吗
什么是pyc文件?Pyc是一个二进制文件,是编译py文件后生成的文件,是一个字节码。当py文件变成pyc文件时,加载速度会加快。另外,pyc是跨平台的字节码,由Python虚拟机执行。这就是Java和。网。pyc的内容与python的版本有关,不同的版本编译不同的pyc文件。用2.5编译的Pyc文件不能在2.4中运行。
为什么需要pyc文件是因为PYC文件可以直接看到源代码。如果是开发商业软件,就不能透露源代码。所以你需要把它编译成pyc,然后发布。当然,pyc文件也可以反编译。不同版本编译的Pyc文件是不一样的。根据python源代码提供的操作码,可以基于pyc文件反编译py文件的源代码。你可以在网上找到一个反编译Python 2.3版pyc文件的工具,但是这个工具是从Python 2.4版开始收费的。如果需要反编译新版本的pyc文件,必须自己动手,但是可以修改python源代码中的操作码文件,然后重新编译python,防止非法人员破译。
Python可以生成一个pyc文件,这是一件好事。它提供了一个内置的类库,用于将py文件编译成pyc文件。模块是py_compile模块。
使用起来非常简单。可以在idle下直接把py文件编译成pyc文件,如下图。(windows环境下的假设)
导入py _编译
py _ compile.com堆(r h :/game/test.py ).
编译函数原型:
编译(文件[,cfile[,dfile[,doraise]]))
File表示要编译的py文件的路径。
Cfile表示编译后的pyc文件的名称和路径。默认情况下,文件名后面会添加C或O and O来表示优化的字节码。
乐迪:itiusedasthanameofsourcefileinerrormessagesinsteadofile
Doraise可以有两个值:真或假。如果为True,将引发PyCompileError。否则编译文件时会出现错误,默认显示在sys.stderr中,不会抛出异常。
ize:14px;“行高:26px”(来自python2.5文档)
批量生成pyc文件一般来说,我们的项目都在一个目录下。一般来说,我们不只是编译一个pyc文件,而是需要编译整个文件夹中的所有PYC文件。python为我们提供了另一个模块:编译全部。用法如下:
导入编译器all
compileall。compile_dir(rH:/game)
这样游戏目录及其子目录下的py文件就编译成pyc文件了。嘿嘿,真是够方便的。看一下compile_dir功能的描述:
compile_dir(dir[,maxlevels[,ddir[,force[,rx[,quiet]]])
Dir表示要编译的文件夹位置。
Maxlevels表示需要递归编译的子目录的层数。默认为10层,即10层子目录下的py文件会默认编译成pyc。
ddir:它用作基本路径,错误消息中使用的文件名将从该路径生成。
如果force为真,将被强制编译成pyc。即使当前的pyc文件是最新的,它也会被强制编译一次。pyc文件包含时间戳,python编译器会根据时间决定是否需要再次重新生成pyc文件。
Rx代表正则表达式,比如可以排除不需要的目录,或者只编译符合条件的目录。
如果quiet为True,编译后信息将不会在标准输出中打印。
(来自python2.5文档)
通过总结以上方法,我们可以很容易地将py文件编译成pyc文件,从而实现部分源代码隐藏,保证python作为商业软件使用时的部分安全性。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。