Я уже задавал этот вопрос, но, думаю, мне нужно уточнить, за что прошу прощения. Давайте рассмотрим самый приземленный, окончательный noob ie, в то время как l oop.
max_count = 4
count = 0
while count < max_count:
print(count)
count += 1
Он явно печатает 0 1 2 3. Так что, я наивно полагаю, возможно, мы сделаем это в стиле OOP, как показано ниже.
class Foo:
def __init__(self, max_count):
self.max_count = max_count
self.count = 0
def loop(self):
while self.count < self.max_count:
print(self.count)
self.count += 1
A = Foo(4).loop()
и снова он услужливо выбрасывает 0 1 2 3. Но затем я становлюсь жадным и говорю себе, что, если я не хочу печатать данные, а просто получаю их для что-то более высокое и благородное, скажем, выполнение нескольких вложенных циклов. Поэтому вместо print в методе l oop я делаю return, как показано ниже.
class Foo:
def __init__(self, max_count):
self.max_count = max_count
self.count = 0
def loop(self):
while self.count < self.max_count:
return self.count
self.count += 1
A = Foo(4).loop()
print(A)
И сильные мира сего награждают меня красивым плоским 0. На моем необразованном лингвах я бы сказал, что класс «душит» l oop. Пожалуйста, просветите меня: возможно ли l oop внутри класса или нет. И если да, то укажите мне правильное направление, и я займусь копанием. Кстати, я бы хотел, чтобы он был в режиме OOP, так как я действительно собираюсь управлять несколькими шаговыми двигателями одновременно. Если я попытаюсь сделать это процедурно, это вернет мои 1988 Pascal, Fortran 77 дней, и это чаша, из которой я больше не хочу пить. Заранее благодарю добрые товарищи.