我想在这种情况下,我可以在SQLAlchemy中保留我的数据库模式(通过类声明)。同时,我想对这些对象使用各种静态方法或实用方法。但我想保持模式清洁,只是模式。有没有办法编写这些额外的方法,让我可以在类的范围之外声明方法?谢谢。有没有办法将静态方法写入类之外的python类而不扩展类?
0
A
回答
0
你的意思是这样的(lol()
是一种静态的“注入”方法)?
class Foo (object):
pass
Foo.lol = staticmethod (lambda: 1)
print Foo.lol()
你的问题并不完全清楚。
+0
您的回答与我解释问题的方式相符。 –
0
由于在Python staticmethods只不过是绑定到一个类的简单的功能一样,你可以很容易地做到这一点是这样的:
def pseudoStaticMethod():
return 'It works.'
class A:
def __init__ (self):
print('A.__init__:', pseudoStaticMethod())
class B:
def __init__ (self):
print('B.__init__:', pseudoStaticMethod())
或者,如果你真的想将它们分配给类/对象:
def pseudoStaticMethod():
return 'It works.'
class A:
myStaticMethod = staticmethod(pseudoStaticMethod)
def __init__ (self):
print('A.__init__:', self.myStaticMethod())
class B:
myStaticMethod = staticmethod(pseudoStaticMethod)
def __init__ (self):
print('B.__init__:', self.myStaticMethod())
或者你甚至可以使用Python支持多重继承的事实:
class BaseClassWithAStaticMethod:
@staticmethod
def myStaticMethod():
return 'It works.'
class A (BaseClassWithAStaticMethod):
def __init__ (self):
print('A.__init__:', self.myStaticMethod())
class B (BaseClassWithAStaticMethod):
def __init__ (self):
print('B.__init__:', self.myStaticMethod())
相关问题
- 1. 扩展方法扩展静态类
- 2. 有没有办法为静态类方法定义别名?
- 3. 有没有办法编写适用于多种类型的扩展方法?
- 4. 具有静态方法的静态类和具有静态方法的常规类之间有什么不同?
- 5. 有没有办法在Python中的类方法中修改类?
- 6. 静态方法与类扩展android.app.Application?
- 7. 扩展方法vs静态工具类
- 8. 将静态方法放入静态类并将实例方法放入静态类中有什么区别?
- 9. 静态类方法没有返回值
- 10. 有没有办法将规范的OnPropertyChanged方法写成扩展方法?
- 11. 更改基于扩展类的父类方法行为(静态)
- 12. 扩展方法的静态类的方法
- 13. Swift协议扩展带有超类和子类的静态方法调度
- 14. 有没有办法调用静态函数而不必提及类型?
- 15. 有没有办法确保实现接口的类实现静态方法?
- 16. Python类的方法 - 有没有办法让通话更短?
- 17. Static Helper类与实例类的静态方法vs扩展方法
- 18. 扩展类方法
- 19. 有没有什么办法在静态方法中检测目标类?
- 20. 有没有办法将数字类型的扩展方法导入到IronPython代码中?
- 21. 为什么我无法为静态类创建扩展方法?
- 22. 嵌套静态类中不允许使用扩展方法吗?
- 23. 有没有办法在一个Test类之外使用TestNG DataProvider?
- 24. 在C或C++中,有没有办法扩展一个没有继承的类?
- 25. 非静态类中的静态方法和静态类中的静态方法有什么区别?
- 26. 扩展方法不编译(没有定义类型'字符串')
- 27. 检查类是否有静态方法
- 28. 有没有办法从WCF REST方法返回不同类型?
- 29. 从静态基类方法调用静态派生类方法
- 30. 扩展类成员的扩展方法?
技术上,我可以编写一个外部库来与对象进行交互。但我想知道是否有实现上述的方法?另外,你对这种“pythonic”方式有何看法? – nubela