Получите имя класса от модуля

Я записал полную программу, чтобы сделать просто это некоторое время назад. Я могу загрузить демонстрацию позже, когда я возвращаюсь домой.

Вот код (asp.net/c#): http://naspinski.net/post/Findingcounting-Keywords-out-of-a-Text-Document.aspx

17
задан astropanic 28 November 2009 в 14:16
поделиться

2 ответа

self.class дает вам класс объекта, для которого вызывается метод. Предполагая, что модуль был включен в класс, это либо класс, который включал модуль, либо его подкласс. Если вам действительно нужно только имя, вы можете использовать вместо него self.class.name .

Если вы расширили класс с помощью модуля и хотите получить этот класс, вы можете просто сделать cls = self (или cls = name , если вы хотите, чтобы имя класса было строкой).

Если ничего из вышеперечисленного не помогает, вы должны пояснить, что вы хотите.

10
ответ дан 30 November 2019 в 13:53
поделиться

Works for me. As sepp said you have to include it for it to work.

module ActMethods
  def some_method(*attr_names)
    cls = self.class # this doesn't work 
    puts cls
  end
end

class Boh
  include ActMethods
end

b = Boh.new
b.some_method
1
ответ дан 30 November 2019 в 13:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: