Python stati c переменная текущего экземпляра - PullRequest
1 голос
/ 07 января 2020

Я хотел бы, чтобы экземпляр класса был статически доступен. Пример ниже:

class Car:

    ford = Car(brand='Ford')
    mercedes = Car(brand='Mercedes')
    bmw = Car(brand='BMW')

    def __init__(self, brand: str):
        self.brand = brand

Это позволило бы мне сделать Car.ford например. Тем не менее, он говорит, что класс Car не существует. Возможно ли это в Python?

Я видел другие посты, объясняющие, как переменные stati c относятся к классам и экземплярам, ​​но мне не удалось найти пост о переменной stati c экземпляра этого же класса. Поэтому следующий пример не тот, что я имею в виду:

class Car:

    wheels = 4

    def __init__(self, brand: str):
        self.brand = brand


Car.wheels      # Will give me 4

trike = Car(brand='Trike')
trike.wheels    # Will give me 4
trike.wheels = 3
trike.wheels    # Will give me 3

Car.wheels      # Still gives me 4

Я говорю очень конкретно c о переменной stati c экземпляра этого класса.

1 Ответ

2 голосов
/ 07 января 2020

Вы можете сделать это так

class Car:
    def __init__(self, brand: str):
        self.brand = brand

Car.ford = Car(brand='Ford')
Car.mercedes = Car(brand='Mercedes')
Car.bmw = Car(brand='BMW')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...