标签: instance-methods

选择要使用的实例方法

我写了一些代码,它接受一堆对象,在每个对象上使用一个实例方法,并将实例方法返回的值放在一个列表中。

object_list # list of objects
value_list = [object.method() for obj in object_list]
Run Code Online (Sandbox Code Playgroud)

我在代码的很多不同地方都需要这种结构,它们之间的唯一区别是实例方法method总是不同的。

如果方法是函数,那么使用这里解释映射方法是没有问题的。可以用 做类似的事情exec,但是它不是很优雅,而且我不确定它在返回值方面如何工作:

def call_method(obj, method_name: str):
    return exec("obj." + method_name + "()")  # returns None
Run Code Online (Sandbox Code Playgroud)

有没有一种优雅的方法来重构这个问题的代码?

python refactoring instance-methods python-3.x

1
推荐指数
1
解决办法
34
查看次数

在Ruby中动态添加(预定义的)实例方法

我看到如何动态地向Ruby中的实例添加方法def [instance].[methodname]; [...]; end.

但是,我有兴趣将另一个位置中存在的方法附加到给定实例.例如

def my_meth
  puts self.foo
end

class MyCls
  attr_accessor :foo
end

my_obj = MyCls.new
my_obj.my_meth
Run Code Online (Sandbox Code Playgroud)

我怎么能简单地附加my_methmy_obj上面的代码的最后一行中的方法调用?

ruby metaprogramming instance-methods

0
推荐指数
1
解决办法
785
查看次数

不能静态引用非静态方法?

所以,简而言之.我有两节课.

package rpg;

public class Engine {
    public void main(String args[]) {
        Start.gameStart();
        System.out.println(menuResult);
    }
}
Run Code Online (Sandbox Code Playgroud)

package rpg;
public class Start {
    int menuResult = 3;
    public int gameStart() 
    {
        return menuResult;
    }
    public int getMenuResult()
    {
        return Start.menuResult;
    }
}
Run Code Online (Sandbox Code Playgroud)

它不断抛出错误'无法对非静态方法gameStart()进行静态引用.我确定我错过了一些简单但却找不到的东西.谢谢!

java static-methods instance-methods

0
推荐指数
1
解决办法
9921
查看次数

CoffeeScript实例方法

我有一个像这样定义的CoffeeScipt类

class Foo
  a: 1
  b: 2
  main: ->
   if a == 1
    log(1)

  log: (num) ->
    console.log(num)
f = new Foo
f.main()
Run Code Online (Sandbox Code Playgroud)

它一直错误地说没有定义日志.我试过让它@log:也不起作用.我尝试制作->主要的a =>并且也没有用.如何从类本身调用实例方法?

instance-methods coffeescript

0
推荐指数
1
解决办法
882
查看次数

扩展类实例方法的返回值

我有一个具有实例方法的类,它返回一个哈希.我无法直接更改该类的代码,但我可以使用模块扩展它.我需要在方法的返回哈希中添加一些新键.像这样的东西:

class Processor
  def process
    { a: 1 }
  end
end

module ProcessorCustom
  def process
    super.merge(b: 2) # Not works :(
  end
end

Processor.send :include, ProcessorCustom

processor = Processor.new
processor.process  # returns { a: 1 }, not { a: 1, b: 2 }
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?谢谢.

ruby class instance-methods

0
推荐指数
1
解决办法
101
查看次数

什么是“实例方法”?

来自3.数据模型

\n
\n

实例方法

\n

实例方法对象组合了类、类实例和任何\n可调用对象(通常是用户定义的\xef\xac\x81ned 函数)。

\n
\n

如果是定义的话,它的含义是什么?

\n

如果不是定义,那么“实例方法”的定义是什么?

\n

“实例方法”与类的方法是同一概念吗?

\n

既然有人提出了类方法和静态方法、绑定方法和非绑定方法,那么我澄清一下:

\n

我理解类的方法可以是普通方法、类方法或静态方法。我了解通过类或其实例访问的类的方法可以被绑定或函数。我从未听说过“实例方法”。即使看了引用,我也不知道它是什么,也不确定它是否与普通方法、类方法、静态方法、绑定方法或函数相关。

\n

python class object instance-methods python-3.x

0
推荐指数
1
解决办法
5154
查看次数