我正在研究这两种语言之间的区别,我想知道为什么我不能在不启动实例的情况下访问javascript类中的变量,但我可以在python中这样做
下面是我所说的一个例子:
PYTHON类
class Car:
all =[]
def __init__(self, name):
self.name = name
Car.all.append(self)
def get_car_name(self):
return self.name
bmw = Car("BMW")
mercedez = Car("MERCEDEZ")
print(Car.all)
运行此代码将返回所有汽车的列表(它们是我创建的实例)
[<
主要的
车辆对象位于0x0000022D667664E0>&书信电报;
主要的
.车辆对象位于0x0000022D66766510>]
JAVASCRIPT类
class Car {
all = [];
constructor(name, miles) {
this.name = name;
this.miles = miles;
this.all.push(this);
}
}
let ford = new Car("ford", 324);
let tesla = new Car("tesla", 3433);
console.log(Car.all);
如果我使用此代码,console.log将返回
未定义
在javascript中,如果我想获得all的值,我必须使用这样的实例
console.log(ford.all);
这将只返回创建的ford实例
[ Car { all: [Circular *1], name: 'ford', miles: 324 } ]
但在python中,如果我打印出一个实例all,它将返回这个
print(bmw.all)
[<__main__.Car object at 0x00000199CAF764E0>, <__main__.Car object at 0x00000199CAF76510>]
它返回创建的两个实例,即使我调用了all of one实例