Как отправить переменную на функцию в классе?

Немного запутался в классах Python. Допустим у нас есть класс:

class Hello:
    def hi(self, h2): #можно ли так?
        print(h2)

h1 = Hello()
h1.hi(“Hello, idiot”)

Перейдет ли переменная которую я ввел в self?

И второй вопрос: Иногда в скобках функций пишут вот так:

def hi(resource: dict)

Что это значит? Типа уточняют какой тип данных?


Ответы (1 шт):

Автор решения: CrazyElf

А в чём сложность взять и проверить? Просто добавляете print(self) и запускаете ваш код (только пришлось поменять кавычки, они у вас какие-то не питоновские):

class Hello:
    def hi(self, h2):
        print(self)
        print(h2)

h1 = Hello()
h1.hi("Hello, idiot")

Вывод:

<__main__.Hello object at 0x7fe72b88b4d0>
Hello, idiot

Резюме:

  1. Так можно, код работает.
  2. Ваша переменная попала в h2
  3. В self попала ссылка на экземпляр класса Hello, т.е. на вашу переменную h1, от которой вы вызвали этот метод hi.

P.S.

def hi(resource: dict)

Что это значит? Типа уточняют какой тип данных?

Да, это "аннотация типов" - попытка сделать Питон типизированным языком.

→ Ссылка