gpt4 book ai didi

perl - 如何让所有继承的方法返回子类对象?

转载 作者:行者123 更新时间:2023-12-03 18:05:28 25 4
gpt4 key购买 nike

我正在写一个 hOCR::Element包装顶部 HTML::Element 处理 hOCR内容。因此,来自 hOCR::Element 的对象类继承属于 HTML::Element 的所有方法.

但由于 HTML::Element 中有许多基本方法(例如 find_by_tag_namelook_down )返回 HTML::Element对象,我认为自己必须为每个这样的方法写一个相应的 hOCR::Element简单地通过祝福映射为 hOCR 的包装方法它被给出为 HTML .

例如:

package hOCR::Element;

use HTML::Element;
use parent 'HTML::Element';

sub new {
my ($class, %params) = @_;
my $self = $class->SUPER::new (%params);
return bless $self, $class;
}

sub look_down {
my $self = shift;
return map { bless $_, 'hOCR::Element' } $self->SUPER::look_down (@_);
}

1;

如何让子类从其基类继承所有方法,使这些相关方法返回子类对象而不是基类对象,而不必为每个这样的父方法编写包装器?

最佳答案

sub look_down { 
my $self = shift;
return bless $self->SUPER::look_down (@_) ,HTML::Element ;
}

关于perl - 如何让所有继承的方法返回子类对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35103704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com