Форум сайта python.su
0
Здравствуйте!
Обучаюсь в данный момент, и возникли некоторые трудности.
Есть класс с функцией:
class ClassOne(): def DefOne(self): print("Hello!")
class ClassTwo() def DefTwo(self): self.DefOne()
Отредактировано zhostkiy (Янв. 1, 2019 23:03:29)
Офлайн
76
Во первых, чтобы выполнить это условие
zhostkiyнеобходимо произвести наследование того класса, который метод (так в классе называют функции) которого собираешься вызывать.
Есть также другой класс с функцией, который вызывает другую функцию из другого класса
class ClassOne: def DefOne(self): print("Hello!") class ClassTwo(ClassOne): def DefTwo(self): self.DefOne() x = ClassTwo() x.DefTwo() y = ClassTwo() x.DefOne()
Офлайн
0
Romissevd
Во первых, чтобы выполнить это условие
zhostkiy
Есть также другой класс с функцией, который вызывает другую функцию из другого класса
необходимо произвести наследование того класса, который метод (так в классе называют функции) которого собираешься вызывать.
self - это ответ с картинками
class ClassOne:
def DefOne(self):
print(“Hello!”)
class ClassTwo(ClassOne):
def DefTwo(self):
self.DefOne()
x = ClassTwo()
x.DefTwo()
y = ClassTwo()
x.DefOne()
В данном примере self - это х и y
Офлайн
0
+ очень странное поведение аргумента. Если не указывать обязательный аргумент self, но вместо него указать другой, то метод все равно будет вызываться. В чем подвох?
Офлайн
76
zhostkiyНет. Чтобы получить методы другого класса (в твоем случае ты хочешь выполнить метод DefOne() из класса ClassOne) необходимо унаследовать этот метод делается это так class ClassTwo(ClassOne)
Ага, то есть, без этого аргумента мы никак не получим данные метода внутри другого класса. Я все правильно понял?
Офлайн
0
Romissevd
понял теперь. А как насчет того, что если функция вызывается вне класса через DefOne(), на экране выводится сообщение, но если выводить то же самое сообщение, но уже внутри класса, будет ошибка. С чем это связано? Нужно обязательно внутри класса передавать методу какой-либо аргумент?
Офлайн
27
zhostkiyДавай-ка посмотрим как вызывается вне класса:
если функция вызывается вне класса через DefOne(), на экране выводится сообщение
zhostkiyНе понятен вопрос. Хотелось бы видеть после какой команды внутри класса появляется ошибка. Про какие аргументы идёт речь? Приведите пример, когда в приведенных выше фрагментах требуются аргументы.
если выводить то же самое сообщение, но уже внутри класса, будет ошибка. С чем это связано? Нужно обязательно внутри класса передавать методу какой-либо аргумент?
Офлайн