自动添加方法定义模板

autoself的Python项目详细描述


autoself:自动添加方法定义模板

首先,免责声明。明确的自我是好的。字节码破解是不好的。
把它们放在一起,很明显这个模块是令人讨厌的!
但是,如果你真的*
*真的*想省省自己的按键次数(比如,你拼命地
试图侵入死星的安全系统来覆盖垃圾
当它冰冷的金属钳口慢慢地将你挤压成紫色的糊状物时
它可以帮助你做到这一点。但是,停下来想想圭多
问题是:

自我表露是一件好事。它通过
消除变量解析方式的歧义。它也使得
函数和方法之间的差别很小。
“在python 3000中不会改变的事情”:
http://www.python.org/dev/peps/pep-3099/核心语言

此模块不是要使“self”隐式化。它不会试图改变
方法的工作方式,或进行任何语义更改。它做了一个
简单的事情:自动添加样板代码以使函数执行
作为方法调用时的“正确的东西”。

它提供一个单独的函数“autoself”。给定一个函数作为参数,
“autoself”将返回带有必要样板的等效函数
作为一种方法。这将取决于
功能,可能意味着:

*插入“self”作为第0个参数
*插入'cls'作为第0个参数,并用classmethod()包装
*如果未使用“self”和“cls”,则使用staticMethod()包装
*如果它不是一个合适的功能或是正常的,什么也不做

例如,使用以下方法定义“likes”方法:

def喜欢(自我、火腿、鸡蛋):
打印自我,“喜欢”,火腿,“和”,鸡蛋

相当于按以下方式定义:

def likes(火腿、鸡蛋):
打印自我,“喜欢”,火腿,“和”,鸡蛋
喜欢=自动(喜欢)

或更整洁,使用@autoself decorator。当然,这不会
省得你打字了!“autoself”也可以应用于类,并将
自动自组织该类dict中的所有函数:

无堆类:
def likes(火腿、鸡蛋):

打印自我,“喜欢”,火腿,“和”,鸡蛋
定义仇恨(垃圾邮件):

打印“全部”,CLS,“讨厌”,垃圾邮件
def meh(吐司):

打印吐司,“很无聊”
heapslesstyping=自动(heapslesstyping)

当它可用时(python 2.6?),它将更加方便
将其与类装饰符语法一起使用。

想保存更多的输入吗?“autoself”可以用作
在模块中定义的所有类上发挥其魔力:

uu元类=autoself

类外观本身:
定义初始化(我的,特殊的,参数):
self.my=我的
self.special=特殊
self.args=参数
保存五级击键:
定义初始化(这个,有效,很好):
self.this=这个
self.works=工作
self.great=很好
计数器=0
定义类方法saveevenmore():
时钟计数器+=1

使用此样式,您可以看到使用五种方法在击键中节省的净时间
定义或更少!

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

推荐PyPI第三方库


热门话题
java调用Python函数作为TEID中的UDF   java Android。支持v4导入不工作   java如何影响具有静态属性的类   java如何在从glTexImage2D()分配后编辑纹理的像素颜色   javaspringboot+rediscache+@Cacheable适用于某些方法,而不适用于其他方法   java无法将动态Web模块方面从3.0更改为2.5   java如何在新选项卡中显示打印的文档?   java Google Cloud Endpoints API方法仅在删除用户参数时成功调用   java为什么我可以使用Stack<Double>但不能使用Stack<Double>?   java JDBC PreparedStatement似乎忽略了占位符   java如何设置JInternalFrame的标准图标化位置?   Java文件。copy()不复制文件   基于另一个类的java显示arraylist?   java Android Studio:错误:非法字符:'\u2028'   对象(Java)无法实例化类型映像?   javascript错误:飞行前响应的HTTP状态代码401无效   java确保泛型vararg参数具有相同的类型