我有一组对象,我正在创建一个类,我想要将每个对象存储为自己的文本文件.我真的希望将其存储为一个

Python类定义,它会分类我正在创建的主类.所以,我做了一些戳,并在effbot.org上找到了一个Python代码生成器.我做了一些实验,这里是我想出来的:

#

# a Python code generator backend

#

# fredrik lundh, march 1998

#

# fredrik@pythonware.com

# http://www.pythonware.com

#

# Code taken from http://effbot.org/zone/python-code-generator.htm

import sys, string

class CodeGeneratorBackend:

def begin(self, tab="\t"):

self.code = []

self.tab = tab

self.level = 0

def end(self):

return string.join(self.code, "")

def write(self, string):

self.code.append(self.tab * self.level + string)

def indent(self):

self.level = self.level + 1

def dedent(self):

if self.level == 0:

raise SyntaxError, "internal error in code generator"

self.level = self.level - 1

class Point():

"""Defines a Point. Has x and y."""

def __init__(self, x, y):

self.x = x

self.y = y

def dump_self(self, filename):

self.c = CodeGeneratorBackend()

self.c.begin(tab=" ")

self.c.write("class {0}{1}Point()\n".format(self.x,self.y))

self.c.indent()

self.c.write('"""Defines a Point. Has x and y"""\n')

self.c.write('def __init__(self, x={0}, y={1}):\n'.format(self.x, self.y))

self.c.indent()

self.c.write('self.x = {0}\n'.format(self.x))

self.c.write('self.y = {0}\n'.format(self.y))

self.c.dedent()

self.c.dedent()

f = open(filename,'w')

f.write(self.c.end())

f.close()

if __name__ == "__main__":

p = Point(3,4)

p.dump_self('demo.py')

感觉真的很丑,是否有更清洁/更好/更多/更多的pythonic方式来做到这一点?请注意,这不是我真的打算这样做的课程,这是一个小班,我可以很容易地模拟不要太多的行.此外,子类不需要在其中具有生成函数,如果我再次需要,我可以从超类调用代码生成器.

python代码导出_代码生成 – Python生成Python相关推荐

  1. google python代码规范_如何用好python编码规范,写一手漂亮的代码

    前一段时间在编写python 代码的时候编辑器中一直在提示规范问题,因为强迫症的原因,我决定遵循python 的编码规范去编码,然后把需要注意的点记录下来, 帮助自己和大家一起成长. 这是我的main ...

  2. 简单python代码实例_求简洁优美的python代码例子、片段、参考资料

    展开全部 建2113议你去看一本书:<计算机程序5261的构造与解释>.里面4102用的语言是Scheme,一种Lisp的方言.通1653过这本书学习程序的抽象.封装,以及重要的函数式编程 ...

  3. python代码规范化_最流行的Python代码规范

    PEP 8等规范性文件试图统一Python的编码风格,那么实际效果到底如何呢? sideeffect.kr通过分析GitHub上托管的开源代码,得出了一些有趣的结果.一起来看看吧. 使用空格还是Tab ...

  4. 手机python代码阅读_教你阅读Python开源项目代码!

    2021年FRM主要时间节点 2020年12月 第一阶段报名时间:2020/12/01 - 2021/01/31 首次注册:$1000 USD / 非首次注册:$590 USD 2021年02月 第二 ...

  5. python代码打好了怎么运行-python代码是怎样运行的

    python作为一种动态语言,其实是一个解释器软件包.当Python运行脚本时,在代码开始进行处理之前,Python还会执行一些步骤.第一步是编译成所谓的"字节码",如果Pytho ...

  6. python代码加密cython_利用Cython对python代码进行加密

    利用Cython对python代码进行加密 Cython是属于PYTHON的超集,他首先会将PYTHON代码转化成C语言代码,然后通过c编译器生成可执行文件.优势:资源丰富,适合快速开发.翻译成C后速 ...

  7. python编程基础_月隐学python第2课

    python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...

  8. python代码写好了怎么运行-python代码是怎样运行的

    python作为一种动态语言,其实是一个解释器软件包.当Python运行脚本时,在代码开始进行处理之前,Python还会执行一些步骤.第一步是编译成所谓的"字节码",如果Pytho ...

  9. python自加_浅谈:为什么python没有自增运算符?

    前言 如果我们刚开始学的是C语言的话,肯定知道a++,b++这种自增模式,很大的便捷了我们.但是在python中使用a++,b++就会出现SyntaxError:invalid syntax出现无效语 ...

最新文章

  1. nginx_lua_waf安装测试
  2. jQuery框架学习第一天:开始认识jQuery
  3. 公司的API接口被刷了,那是因为你没这样做!
  4. 【数据结构与算法】常用算法
  5. 数据结构线性表博客作业总结
  6. Java集合框架:Collections工具类
  7. linux之ps命令详解
  8. Bitwise Operation Explained
  9. 3dmax教程技术:3dmax 怎么去掉贴图_3dmax如何去掉贴图
  10. 下载InstallShield Limited Edition for Visual Studio
  11. NGINX配置gzip请求自动解压
  12. android dumpsys 分析,Android中dumpsys命令用法简单介绍
  13. 计算机考研301数学一攻略,国家海洋技术中心
  14. 《R语言数据挖掘》读书笔记:三、分类
  15. 【深度学习】Numpy实现简单神经网络
  16. 新浪sina.cn邮箱注册python版
  17. 解决xampp 外网访问不了
  18. java开发系统内核:让内核从严重错误中恢复
  19. EasyRoads3D使用教程
  20. 习题3-5 三角形判断

热门文章

  1. 计算机辅助普通话水平测试评分办法,计算机辅助普通话水平测试评分试行办法...
  2. php5.3升级5.4,centos php 5.3升级到 php5.4版本
  3. scope参数错误或没有scope权限_SSM 单体框架 - 前端开发:用户和权限模块
  4. linux高亮查找关键字
  5. mAP与IOU的简单介绍
  6. OpenCV中的傅里叶的门道
  7. LeNet网络配置文件 lenet_train_test.prototxt
  8. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 21丨报告系统状态的连续日期【难度困难】​
  9. MySQL Cookbook 学习笔记-02
  10. 博客网站源代码_详解SEO布词以及网站排名优化技巧