Я пытаюсь по-настоящему понять, что происходит с методами класса в python, и натолкнулся на следующее, что я не могу понять.
Мой код:
class exampleclass():
def __init__(self,text):
self.text = text
self.firstletter = text[0]
# the method has to be run --> with ()
self.lastletter = self.methodlast()
# the option that I used to use:
self.secondletter = self.method2(self.text)
# with the variable last letter I do something else
# The order is important. lastletter is already defined here.
def methodlast(self):
return self.text[-1]
def method2(self, text):
return text[1]
def methodX5(self):
# addind a variable to the class
self.longstring = self.lastletter * 5
Я намерен создать атрибуты метода класса по методу, и я также хочу, чтобы к методам можно было получить индивидуальный доступ извне класса.
в идеале мне бы хотелось:
cla_ins = exampleclass("this is a text")
Но Я также хочу использовать метод независимо от экземпляра класса:
second_letter = exampleclass.method2("whatever")
Использование метода, вызывающего класс, не нормально:
try:
a =exampleclass.method2("whatever")
print(a)
except Exception as e:
print(str(e))
выдает ошибку:
method2() missing 1 required positional argument: 'text'
Использование экземпляра работает:
try:
a = cla_ins.method2("whatever")
print(a)
except Exception as e:
print(str(e))
Как создать класс, чтобы иметь доступ к методам изнутри класса, а также извне?
Изнутри я имею в виду:
self.secondletter = self.method2(self.text)
Со стороны я имею в виду:
a = exampleclass.mehtod2("whatever")
Похоже, я могу вызывать класс метода только с использованием экземпляра класса. Это сделало бы все мои рассуждения недействительными. то есть я использую метод с экземплярами или не использую метод извне, верно?
До сих пор обращались к другим ссылкам: