如何将设置值作为对象传递?

时间:2014-02-16 10:51:41

标签: python object set

number是代码中定义如下的变量:

number=[(1, 0.44383160070768396), (1, 0.5999405754368163), (1, 0.44564960553183486)]

我有一个接受对象并执行某些操作的方法。

foo = FooClass (number)
foo.method_1() #calling from FooClass

如何将数字变量作为python中的对象传递? 另一个问题是变量中绑定数据或绑定数据作为对象之间的区别是什么。

任何简单的例子都会非常感激。谢谢。

2 个答案:

答案 0 :(得分:1)

您的number似乎是list 2 - tuple。您可以在创建实例时将其作为实例属性存储在FooClass中,然后通过self在实例方法中访问它:

class FooClass(object):

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

    def method_1(self):
        # use self.number here

将数据绑定为变量或对象之间没有区别;在Python中,一切都是对象,变量是对这些对象的名称引用。

答案 1 :(得分:0)

number=[(1, 0.44383160070768396), (1, 0.5999405754368163), (1, 0.44564960553183486)] < => number=list((1, 0.44383160070768396), (1, 0.5999405754368163), (1, 0.44564960553183486))

此处number是类list的对象。 它拥有这一类的所有方法。

现在你想拥有一个必须拥有自己的方法的Number类:

class Number(list):  # <- we declare new class with list as a parent
    def method_1(self):  # <- declare method, self is keyword for instance of class
        print 'for example, ', self[0]  # <- do something

现在我们将使用数字: number=Number((1, 0.44383160070768396), (1, 0.5999405754368163), (1, 0.44564960553183486))

现在number具有Number类,它可以执行列出的所有操作,也可以使用method_1:

number.method_1()

将打印for example, (1, 0.44383160070768396)

尝试阅读有关子类化的内容