«TypeError: объект ‘write’ не может быть интерпретирован как целое число». write — это имя моего класса

#python-3.x

#python-3.x

Вопрос:

у меня есть метод внутри класса, который возвращает некоторое значение str. я инициализирую этот класс и вызываю этот метод класса, и я получаю указанную ниже ошибку «Ошибка типа: объект’write_from_excel’ не может быть интерпретирован как целое число». ‘write’ — это имя моего класса

перепробовал все

 from xlwt import Workbook
import random
import string


class write_to_excel():



    wb = Workbook()

    # add_sheet is used to create sheet.
    sheet1 = wb.add_sheet('Sheet 1')

    def randomString(stringLength=10):
        """Generate a random string of fixed length """
        letters = string.ascii_lowercase
        return ''.join(random.choice(letters) for i in range(stringLength))


s = write_to_excel()
r = s.randomString()
print(r)
 

я ожидал, что класс будет инициализирован и внутри него будет запущен метод

Ответ №1:

Вам нужно добавить конструктор в свой write_to_excel класс и передать в self свой randomString метод, чтобы он был распознан как метод объекта.

 from xlwt import Workbook
import random
import string


class write_to_excel():

    def __init__(self):
        self.wb = Workbook()
        self.sheet1 = self.wb.add_sheet('Sheet 1')

    def randomString(self,stringLength=10):
        """Generate a random string of fixed length """
        letters = string.ascii_lowercase
        return ''.join(random.choice(letters) for i in range(stringLength))


s = write_to_excel()
r = s.randomString()
print(r)
 

вывод:

 sakzsiuxwj
 

Если вы не хотите wb , чтобы nor sheet1 инициализировался, вместо этого создайте свой __init__ метод в этом:

     def __init__(self):
        pass               #use only if you want an empty constructor
 

Комментарии:

1. что, если wb и sheet1 не нужно инициализировать? должен ли я все еще использовать конструктор? если мне нужно использовать конструктор, что я должен инициализировать в этом случае?

2. @vigneshshrinivasan добавил пример