簡體   English   中英

該方法不在類實例內調用

[英]The method is not called inside a class instance

無法在 Python 3.7 的實例類中訪問read_file()方法。 我想with functions print_file() 打印list list_values_end . When calling the function . When calling the function print_file() 時the terminal produces <__ main __。 ReadFile 對象位於 0x0082EA70>` 而不是預期的列表。 請解釋做錯了什么? 附上代碼。

class ReadFile():
"""Чтение из файла"""
def __init__(self):
    
    self.file_r = 'val_kWt.txt'
    self.read_file(self.file_r)
                    
    self.print_file(self)

def read_file(self, file_r):
    list_values_end = []
    vk = open(file_r, 'r')
    list_values = vk.readlines()

    for list_value in list_values:
        list_values_end.append(list_value.rstrip())
    
    vk.close()
    print(list_values_end)
     
    return list_values_end
    
def print_file(self, list_values_end):
    print(list_values_end)

示例 = ReadFile()

您必須在return語句之前放置print 試試這個:

class ReadFile():
    def __init__(self):
        
        self.file_r = 'val_kWt.txt'
        self.read_file(self.file_r)
        
        self.a = 12
        self.print_a(self.a)
        
    def print_a(self, a):
        print('Printing ', a)

    def read_file(self, file_r):
        list_values_end = []
        vk = open(file_r, 'r')
        list_values = vk.readlines()
 
        for list_value in list_values:
            list_values_end.append(list_value.rstrip())
        
        vk.close()
        print(list_values_end)
        return list_values_end

根據問題修改編輯

您將對象傳遞給了print_file函數。 相反,您應該傳遞 read_file 的返回值

class ReadFile():
    """Чтение из файла"""
    def __init__(self):
        
        self.file_r = 'val_kWt.txt'
        list_value_end = self.read_file(self.file_r)
                        
        self.print_file(list_value_end)
    
    def read_file(self, file_r):
        list_values_end = []
        vk = open(file_r, 'r')
        list_values = vk.readlines()
 
        for list_value in list_values:
            list_values_end.append(list_value.rstrip())
        
        vk.close()
        print(list_values_end)
         
        return list_values_end
        
    def print_file(self, list_values_end):
        print(list_values_end)

examp = ReadFile()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM