Is this possible?
我有一个正在运行的线程的类foo,我想做的是限制类栏可以访问foo的多少,同时仍然可以访问foo的内部,这是可能的吗?
Python是一种强、动态类型的语言。这意味着:
- 对象是强类型的,这意味着整数是一个整数,除非您这样说,否则不能将其视为其他任何对象。对象有一个特定的类型并保持该类型。
- 可以使用名称(变量)引用对象,但名称没有任何特定类型。这完全取决于名称所指的是什么,当其他事物被分配到相同的名称时,这可能会发生变化。
python强烈地使用所谓的"duck-typing"技术,其中对象没有(也不需要)特定类型的接口。如果一个对象支持一组特定的方法(规范化示例是一个类似文件的对象),那么它可以在需要类似文件的对象的上下文中使用。
根据你的问题,看起来你想要一个像foo的ifoo实例。下面的代码可以做到这一点,但不建议在Python中这样做。
1 2 3 4 5 | class IFoo(object): pass class Foo(IFoo): pass f = IFoo() Foo.__init__(f) |
更好的方法是简单地使用(多)继承:
1 2 3 4 5 6 7 8 9 | class IFoo(object): def __init__(self, *args, **kwargs): pass class Foo(IFoo): def __init__(self, *args, **kwargs): IFoo.__init__(self, *args, **kwargs) f = Foo() |