我有需要采取一个string参数,并创build在Python中的string中指定类的对象。 在Java中,我会使用Class.forName().newInstance() 。 Python中是否有相当的东西? 感谢您的回应。 要回答那些想知道我在做什么的人:我想使用命令行参数作为类名,并实例化它。 我实际上是用Jython进行编程并实例化Java类,因此问题的Java性。 getattr()很好。 非常感谢。
PHP中是否有任何reflection/内省/魔法,可以让您find定义了特定类(或函数)的PHP文件? 换句话说,我有一个PHP类的名称,或一个实例化的对象。 我想把它传递给(函数,reflection类等),将返回类定义的文件系统path。 /path/to/class/definition.php 我意识到我可以使用( get_included_files())来获得目前为止已经包含的所有文件的列表,然后手动parsing它们,但是对于单次尝试来说,这是大量文件系统访问。 我也意识到我可以在我们的__autoload机制中编写一些额外的代码来caching这些信息。 但是,在我所想的情况下,修改现有的__自动加载是不受限制的。 听到可以做到这一点的扩展会很有趣,但我最终会喜欢一些可以在“股票”安装上运行的东西。
有没有人知道答案和/或有一个看法呢? 由于元组通常不会很大,所以我认为使用结构比类更有意义。 什么说你?
可以这样写: class Test(object): def _decorator(self, foo): foo() @self._decorator def bar(self): pass 这失败了:@self中的self是未知的 我也试过: @Test._decorator(self) 这也失败了:testing未知 如果想温度。 修改装饰器中的一些实例variables,然后运行修饰的方法,然后再更改它们。 谢谢。
我想要的是这样的行为: class a: list=[] y=a() x=a() x.list.append(1) y.list.append(2) x.list.append(3) y.list.append(4) print x.list [1,3] print y.list [2,4] 当然,当我印刷的时候真正发生的是: print x.list [1,2,3,4] print y.list [1,2,3,4] 显然他们正在分享a类中的数据。 我如何获得单独的实例来实现我所希望的行为?
给定一个Foo类(不pipe它是否是新式类),如何生成所有的基类 – inheritance层次结构中的任何地方 – 它的issubclass ?
在接口中创build方法后是否有一些快捷方式允许我select并跳转到实现该接口的类?
有没有办法来匹配下面的例程的任何类参数? class A { public B method(Class<? extends A> a) {} } 我怎么总是返回一个new B()而不pipe哪个类被传入method ? 以下尝试仅适用于A匹配的特定情况。 A a = new A(); B b = new B(); when(a.method(eq(A.class))).thenReturn(b); 编辑 :一个解决scheme是 (Class<?>) any(Class.class)
在Visual Studio中,如何显示从基类inheritance的所有类? 例如 ,在ASP.NET MVC中有几个“ ActionResult ”types – 它们都从基类ActionResultinheritance/实现。 它看起来像,除非你知道View和Json是有效的ActionResulttypes,否则你无法轻易find这些信息。 请certificate我错了。 在对象浏览器中有什么东西可以很容易find? 我甚至提出了Visual Studio以外的工具的build议,以发现有关各种类的信息。 例如:Resharper中有什么能帮助我吗?
我在Rails文档中找不到这个,但是在正常的Ruby 类中, 'mattr_accessor'是'attr_accessor' (getter&setter)的模块推论。 例如。 在一个class级 class User attr_accessor :name def set_fullname @name = "#{self.first_name} #{self.last_name}" end end 例如。 在一个模块中 module Authentication mattr_accessor :current_user def login @current_user = session[:user_id] || nil end end 这个帮助器方法由ActiveSupport提供。