【问题标题】:Python static variable of current instance当前实例的 Python 静态变量
【发布时间】:2020-01-07 15:54:39
【问题描述】:

我想要一个静态可用的类的实例。下面是一个例子:

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 中可行吗?

我看过其他解释静态变量如何与类和实例相关的帖子,但我找不到关于同一类实例的静态变量的帖子。所以下面的例子不是我的意思:

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

我说的是该类实例的静态变量。

【问题讨论】:

  • 这能回答你的问题吗? Are static class variables possible in Python?
  • 不,抱歉。我看到了那篇文章,但它没有谈论类本身实例的静态变量。我试图尽可能具体,但问题可能很模糊,不确定

标签: python-3.x variables inheritance static instance


【解决方案1】:

你可以这样做

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')

【讨论】:

  • 太棒了!看起来有点奇怪,但回答了我的问题!
猜你喜欢
  • 1970-01-01
  • 2019-03-28
  • 2014-02-03
  • 1970-01-01
  • 2014-02-07
  • 1970-01-01
  • 2011-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多