在类外访问变量

2024-06-28 19:47:36 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有两个由构造函数方法构建的类。我可以通过在外部定义函数来访问这些类的变量吗?示例:

class MyCat1():
    def __init__(self, weight1, speed1):
    self.weight1 = ...
    self.speed1 = ...

class MyCat2():
    def __init__(self, weight2, speed2):
    self.weight2 = ...
    self.speed2 = ...

def run(self, weight1, weight2, speed1, speed2):
    self.sum = weight1.speed1+ weight2.speed2
    x = self.sum
    return x

Tags: 方法函数self示例定义initdefclass
2条回答

我觉得这更接近你的目标。只需定义一次class,然后就可以创建任意多个实例。在

class MyCat():
    def __init__(self, weight, speed):
        self.weight = weight
        self.speed = speed

这是一个自由函数,因此没有self,因此您可以传入MyCat的实例来使用。您可以从实例中调用属性weightspeed。在

^{pr2}$

例如

>>> cat1 = MyCat(5, 10)
>>> cat2 = MyCat(3, 5)
>>> run(cat1, cat2)
65

我将创建一个Cat类,并将方法保留在类中,并将实例传递给方法:

class Cat(object):
    def __init__(self, weight, speed):
        self.weight = weight
        self.speed = speed

    def run(self,other):
        return self.weight * other.weight + self.speed * other.speed

cat1 = Cat(2, 2)
cat2 = Cat(3, 3)

print(cat1.run(cat2))
12

创建几乎完全相同的类是没有意义的,如果你决定拥有100只猫,这将变得相当困难。在

相关问题 更多 >