正在研究这两种语言之间的区别,我想知道为什么我不能在不启动实例的情况下访问JavaScript类中的变量,但我可以在Python中做到这一点
这是我正在谈论的一个例子:
PYTHON CLASS
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)
运行此代码返回所有汽车的列表(这是我创建的实例) [<100.Car object at 0x0000022D667664E0>, <100.Car object at 0x0000022D66766510>]
JAVASCRIPT Class
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将返回 undefined
在JavaScript中,如果我想获得所有内容的价值,我必须使用这样的实例
console.log(ford.all);
这将仅返回创建的ford实例
[ Car { all: [Circular *1], name: 'ford', miles: 324 } ]
但在Python中,如果我打印出一个实例,它就会返回这个
print(bmw.all)
[<__main__.Car object at 0x00000199CAF764E0>, <__main__.Car object at 0x00000199CAF76510>]
即使我调用了一个实例的全部,它也会返回创建的两个实例