Python:如何在另一个方法中使用另一个方法的返回值?

2024-10-03 00:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我要做的是从abcd方法中获取一个返回值,并使用该值作为fname的替代项,错误会继续发生。你知道吗

如何修复此错误?你知道吗

ICB164000395.txt有四行。 我要打印4行(文本文件中的行数)

class Test():
    def abcd(self):
        self.a = a
        a = 'ICB164000395.txt'
        return a


    def line_count(self, fname):
        with open(fname) as f:
            for i, l in enumerate(f):
                pass
        return i + 1
        print(i + 1)

t = Test()
t.line_count(abcd())

错误如下所示

回溯(最近一次呼叫): 文件“C:\Users\mg\Desktop\Tubuc\openAPI\test9.py”,第16行,in t、 行计数(abcd(fname)) 名称错误:未定义名称“abcd”


Tags: 方法intestselftxt名称returndef
3条回答

看看函数:

def abcd(self):
    self.a = a
    a = 'ICB164000395.txt'
    return a

我猜你在self.a = a遇到了一个错误。。因为a还没有定义。也没有通过。你知道吗

我想你想要的是:

class Test():
    def abcd(self):
        a = 'ICB164000395.txt' # you'll need to correct the path to this file
        return a


    def line_count(self, fname):
        with open(fname) as f:
            for i, l in enumerate(f):
                pass
        return i + 1
        print(i + 1)

t = Test()
t.line_count(t.abcd())

abcd是一个实例方法,因此必须从类的实例调用它

t = Test()
t.line_cont(t.abcd())

您的abcd方法在定义变量a之前也会使用它,因此您可以将它更改为

def abcd(self):
    self.a = 'ICB164000395.txt'
    return self.a

似乎您想要从abcd方法得到的信息通常在init中处理。可以在实例化测试对象时设置文件名。然后你可以打电话给电话号码。行计数方法还应指定如何打开读取模式的文件“r”。你知道吗

class Test():
    def __init__(self, file_name):
        self._file_name = file_name


    def line_count(self):
        with open(self._file_name, 'r') as f:
            for i, l in enumerate(f):
                pass
        return i + 1
        print(i + 1)

t = Test('ICB164000395.txt')
t.line_count()

相关问题 更多 >