通过课程"自我"在它之外的函数,以便类的变量是可访问和可修改的?

时间:2016-10-20 16:30:43

标签: python python-2.7 oop

我可以将类中的self实例变量从类中传递给类外的某个辅助函数吗?例如,当SomeClass的对象被初始化时,以下工作是否会起作用?是不是需要任何类型的铸造?这种编码风格可靠吗?在将来的Python 2.x版本中是否有可能删除此功能?

class SomeClass():
    var1 = 7
    def __init__(self):
        some_func(self) # passing self instead of self.var1

def some_func(instance):
    instance.var1 += 1

x = SomeClass()
print x.var1

我有some_func作为常见的帮助函数跨越许多经历相同转换的类,而我当前应用程序中的var1是一个庞大的数据框,我无法将其复制到由于内存限制的功能。你有什么建议吗?

1 个答案:

答案 0 :(得分:3)

最简单的方法就是尝试一下:) 是的,它可以正常工作

class SomeClass():
    var1 = 7
    def __init__(self):
        some_func(self) # passing self instead of self.var1

def some_func(instance):
    instance.var1 += 1

x = SomeClass()
print x.var1

但在大多数情况下,最好将some_func设为SomeClass

的成员