从类中的第x个函数引用变量

时间:2019-04-02 16:22:32

标签: python python-3.x


我觉得是时候开始上课了。我有这样结构的文件。而且我无法访问在 init 中设置的变量,该怎么办?我的结构是否正确?现在描述为多功能的是三个功能,其中两个可以独立工作,所以我认为将它们放在类中是一件好事,这样我就可以轻松地在另一个项目中使用它们。函数在类的末尾执行。

class args:
    def __init__(self):
        args = self.get_args()
        self._old = args.old
        self._new = args.new
        self._xml = args.xml

    @staticmethod
    def get_args():
        pass #too long to bother here

    @property
    def old(self):
        return self._old

    @property
    def new(self):
        return self._new

    @property
    def xml(self):
        return self._xml

class update:
    def __init__(self, print_dict = False):
        self.print_dict = print_dict

    def dict_of_glyph_order(old, new):
        pass

    def update_VTT_g_order(xml, glyph_id_dict, print_dict):
        if self.print_dict:
            print('%03d == %03d' %(int(glyph_id), int(new_id)), end=',  ')

    def save_new_xml(xml, tree):
        pass

    args = args()
    dict_of_glyph_order = dict_of_glyph_order(args.old, args.new)
    tree = update_VTT_g_order(args.xml, dict_of_glyph_order, self.print_dict) #variable called here
    save_new_xml(args.xml, tree)

if __name__ == '__main__':
    update()

1 个答案:

答案 0 :(得分:0)

首先,您缺少类的名称,其次,您在init方法中声明了要使用的变量,该方法只需要在self中加上从外部获取的变量在class()中,其他辅助方法可能需要声明其他变量,例如,如果您要使用来自类外部,自身的变量。为了声明和使用您在类内部任何地方使用的任何变量是强制性的,您可以拥有仅在一种方法中存在的局部变量(如果需要),但是只能在init中声明类变量,最终,类中的所有内容都必须在方法,init或其他方法中,该类本身不是方法,它更像是您定义的自定义变量tipe并为其提供了内置方法,并且必须使用已定义的tipe变量才能使用其功能。

class Some_name:     #no space allowed just underscore in the name
    def __init__(self,print_dict):
        self.print_dict = print_dict 
    def one_of_multiple_functions(some other variable):
        #the thing you want it to do

示例:

A=Some_name(print_dict)
A.one_of_multiple_functions(some other variable)  #in order to use the method

如果您想要更好的轴示例,请尝试SoloLearn,它是一款移动应用程序,可以教您任何流行编程语言的基础。