#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 добавил пример