用于动态类分配的轻量级、分离的包装器。
borg_pod的Python项目详细描述
#Borg_Pod Python设计模式和模块。
borg-pod模式为创建动态的和分离的类提供了一种简单的方法。而不是强制开发商 链接类实现、设计状态机、引用所有者的正确指针的开销 对每个属性/方法,以及调试系统-您只需在类上方放置一个包装器,然后使用 它。
##获取
克隆此repo,或使用pip3 install borg_pod
##使用
在模块顶部,请确保包括:
来自Borg_u pod import resist,assimilate,Borgpod
或者,如果您遵守谷歌标准:
以BP或BE油的形式进口Borg_pod
你像一个理智的人一样直接导入了博格·波德的相关属性?假设你有一些你想要的课程 要能够在以下两者之间切换实例:
class SomeClassA(object):
- def __init__(self):
- pass
- def my_method(self):
- print(“I AM SOME CLASS A”)
类OtherClassB(对象):
- def __init__(self):
- print(“HOLD ON, I AIN’T SO QUIET.”)
- def my_method(self):
- print(“…where am I again?”)
- def a_unique_method(self, to_print):
- print(to_print)
您所要做的就是在这两个选项的上方添加@assimilate decorator:
@my_library.assimilate class SomeClassA …
@my_library.assimilate class OtherClassB
…
创建和转换一个实例如下所示:
My_First_Unique=SomeClassA()
My_Second_Unique=SomeClassA()
my_third_unique=otherClassB()
断言my_first_unique不是my_second_unique,my_third_unique不是my_first_unique
first_b=someClassb(我的第一个独特)
second_b=someClassb(我的second_唯一)
第三个b=someClassb(我的第三个u是唯一的)
- 断言(第一个是我的第一个唯一的,第二个是我的第二个唯一的,第三个是我的第三个唯一的
- 第一个不是第三个,第一个不是第二个
就这样!更高级的用法涉及@resist decorator,以避免自引用注入-但是大多数 开发人员不需要担心这个。您可以在模块内部找到更详细的文档。班级 @assimilate decorator可以是子类,也可以是其他修饰类或非修饰类的子类。
##版权所有
Borg_pod模块,安德鲁M.霍根。(Borg_u Pod©;2018霍根咨询集团)
##许可证
根据apache许可证授权。