我有一个类来包装我的程序的配置内容.但是当我尝试在ipython中测试我时:
c = Config(test.cfg)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
"TypeError: read() missing 1 required positional argument: 'filenames'
"
Run Code Online (Sandbox Code Playgroud)
但是我的pylint在我的emacs中抛出了这个错误:
"No value for argument 'filenames' in unbound method call"
Run Code Online (Sandbox Code Playgroud)
我认为错误是上面的错误的原因.但我不知道为什么.我认为该方法是调用绑定的,因为我使用self作为参考,但我不是shure而且我不明白为什么它不接受cfg作为参数.
这是我的班级:
from configparser import ConfigParser
class Config:
"""Wrapper around config files
Args:
cfg: main config file
"""
def __init__(self, cfg=None):
self.cfg = []
self.cfgraw = cfg
self.scfgs = []
self.scfgs_raw = []
if not cfg is None:
self.add(typ="main", cfg=cfg)
def add(self, typ, cfg):
"""add config file
Args:
typ: type of file main or sub
Returns: …Run Code Online (Sandbox Code Playgroud) 正如标题所说,我有一个程序或更好的两个函数来读取和写入一个数组或一个文件.但是现在我写这个的原因是:当我多次运行我的测试时,测试我的函数的测试程序会产生越来越多的空白区域.是否有人可以解释我的失败并纠正我?
我的代码
Helper.pm:
#!/usr/bin/env perl
package KconfCtl::Helper;
sub file_to_array($) {
my $file = shift();
my ( $filestream, $string );
my @rray;
open( $filestream, $file ) or die("cant open $file: $!");
@rray = <$filestream>;
close($filestream);
return @rray;
}
sub array_to_file($$;$) {
my @rray = @{ shift() };
my $file = shift();
my $mode = shift();
$mode='>' if not $mode;
my $filestream;
if ( not defined $file ) {
$filestream = STDOUT;
}
else {
open( $filestream, $mode, $file ) or die("cant …Run Code Online (Sandbox Code Playgroud)