LINUX.ORG.RU

тем временем в няшном питоне:

In [1]: class Foo():
   ...:     def omg(self):
   ...:         print("omg")
   ...:         
In [2]: s = "Foo"
In [3]: o1 = eval(s)()
In [4]: o1.omg()
omg
In [5]: o2 = locals()[s]()
In [6]: o2.omg()
omg
val-amart ★★★★★ ()
Последнее исправление: val-amart (всего исправлений: 2)
Ответ на: комментарий от val-amart

Ну, в Ruby тоже так можно:

class Foo
  def self.omg
    p 'omg'
  end
end

s = 'Foo'
o = eval s
o.omg

Только ведь это явный моветон. Если строку мы получаем от пользователя, то использование eval чревато. ::const_get же делает как раз то, что нужно, и не более того.

Anatolik ★★ ()
Ответ на: комментарий от val-amart
<?php

class Foo
{
	public function bar()
	{
		echo 'baz';
	}
}

$cls = 'Foo';

$x = new $cls;

$x->bar();
user@computer ~> php -f ./test.php 
baz

:-)

sventovit ()
Ответ на: комментарий от Anatolik

я поэтому специально привел второй вариант, без евал через гетаттр в неймспейсе.

val-amart ★★★★★ ()
Ответ на: комментарий от anonymous

Какой же ты говнокодер.

аноны как всегда радуют своими коструктивными замечаниями.

TDrive ★★★★★ ()
Ответ на: комментарий от Deleted

неужели язык общего назначения? 99% руби - веб, 1% - чиф который опять же используется для серверов которые веб, ну и там уже ерланг наполовину же

umren ★★★★★ ()
Ответ на: комментарий от umren

Неужели в самом деле все сгорели карусели? Предлагаю не включать режим валенка.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.