【发布时间】:2015-11-09 05:37:47
【问题描述】:
我有一些 Perl 对象是不久前用 Moose 构建的, 但幸运的是,继承是使用 'parent' pragma 实现的。
现在我想知道是否有办法检查某个类是否使用了'parent'。
例如如果我有两节课
package Animal;
sub new {
my $class = shift;
return bless {}, $class;
}
1;
和
package Cat;
use parent 'Animal';
sub new {
my $class = shift;
return bless {}, $class;
}
1;
我是否可以进行一些检查以确定“猫”类 有一个父母(不关心哪个,但不是它自己),而 Animal 没有,给定一个 $foo 是他们中的任何一个?
【问题讨论】:
-
是的,但我不愿意告诉你,因为我怕你会利用它来作恶。
-
我一定会的。请问?
-
我现在使用 Moose 进行 OO 相关,但我不想重做。
-
这种支票有什么用途?
-
有些子方法调用SUPER方法需要未设置的属性。所以在 new 中,我想检查是否有父级,所以我可以让它在必要时设置那些需要的属性。也许我误解了一些东西,但这是我解决这个问题的第一个想法,而不是编辑所有可能导致此问题的父类或子类。但是如果没有父级就没有必要了。
标签: perl