Python - 如何在不创建对象的情况下使用属性

时间:2015-04-19 19:48:32

标签: python

如何编写一个类来使这段代码有效。

class number:

    def double(self):
        return n*2

print(number(44).double)
>> 88

2 个答案:

答案 0 :(得分:4)

好吧,您可以使用property修饰 number.double 方法:

class number:
    def __init__(self, number):
        self.number = number
    @property
    def double(self):
        return self.number * 2


print(number(42).double) # 84

如果您知道参数的类型,最好从中继承number。例如

class number(int):
    @property
    def double(self):
        return type(self)(self * 2)

print(number(42).double) # 84
print(number(42).double.double) # 168

答案 1 :(得分:0)

你在这里:

class Number(object):

    def __init__(self, n):
        self.n = n

    def double(self):
        return 2*self.n

print(Number(44).double())

几点说明:

  1. 由于double()是类Number的方法(而不是属性),因此您需要使用括号来调用它。
  2. 在Python中,它被认为是给类大写名称的标准做法。
  3. 如果要定义实例变量(在本例中为n44,则必须def __init__()函数,该函数为解释器提供如何操作的说明创建或初始化您的班级实例。
  4. 希望这有帮助,祝你好运!