为具有其他语言背景的python程序员提供的实用程序。
pythonlangutil的Python项目详细描述
这个库提供了一些实用程序来使用python中其他语言的特性。
您可以在examples目录中找到每个特性的功能示例。测试目录中的测试用例运行在 这些例子确保了功能性。
访问修饰符
将变量标识为private::
from pythonlangutil.access_modifiers import private_variable class PrivateVariableTest(object): def __init__(self): self.id = "123" @private_variable('id') def __setattr__(self, *args, **kwargs): return object.__setattr__(self, *args, **kwargs) def insider(self): self.id = "321"
将方法标识为私有方法:
from pythonlangutil.access_modifiers import private_function class PrivateFunctionTest(object): def __init__(self): pass @private_function def private_method(self): return 'called from inside my own class' def insider(self): return self.private_method()
创建重载
创建重载::
from pythonlangutil.overload import Overload, signature class OverloadTest(): def __init__(self): self.male_pref = "Mr. %s" self.female_pref = "Ms. %s" self.general_pref = "Dear %s" @Overload @signature("str", "bool") def my_method(self, name, male): if male: return self.male_pref % name return self.female_pref % name @my_method.overload @signature("str") def my_method(self, name): return self.general_pref % name @my_method.overload @signature("int", "str") def my_method(self, times, name): return "\n".join([self.general_pref % name for i in range(times)])
使用单例模型
它防止类的实例化。类的唯一实例将通过 将自动添加到类中的get_instance()方法。
使用singleton::
from pythonlangutil.singleton import Singleton @Singleton() class SingletonTest(): def __init__(self): pass