@linnea
В Python передача класса в конструктор осуществляется так же, как и передача любого другого аргумента. Просто указывайте класс в качестве аргумента при вызове конструктора.
Например, у вас есть класс Person
и класс Company
, и в классе Company
вам нужно иметь доступ к классу Person
:
1 2 3 4 5 6 7 8 9 10 11 |
class Person: def __init__(self, name): self.name = name class Company: def __init__(self, name, person_class): self.name = name self.person_class = person_class person = Person("John") company = Company("Example Company", Person) |
В этом примере класс Company
принимает два аргумента: name
и person_class
. Мы передаем класс Person
в качестве значения аргумента person_class
при создании экземпляра класса Company
.
Теперь у нас есть доступ к классу Person
внутри класса Company
и можем использовать его по необходимости. Например, мы можем создавать экземпляры класса Person
внутри класса Company
:
1 2 3 4 5 6 7 8 9 10 11 12 |
class Company: def __init__(self, name, person_class): self.name = name self.person_class = person_class def create_person(self, name): person = self.person_class(name) return person company = Company("Example Company", Person) person = company.create_person("John") print(person.name) # Output: "John" |
В этом примере мы создали новый метод create_person
, который создает экземпляр класса Person
с использованием переданного класса person_class
. Мы можем вызвать этот метод на экземпляре класса Company
и получить доступ к экземпляру класса Person
, созданному внутри него.
Надеюсь, это помогло! Если возникли дополнительные вопросы, пожалуйста, дайте мне знать.