Parámetro de función orientada a objetos para alterar variables

Estoy tratando de convertir mi progtwig a un estilo orientado a objetos. Actualmente, tengo una función brandSelector () que toma la entrada de la consulta y encuentra una intersección entre la consulta y la matriz de marcas. Sin embargo, estoy intentando convertir el brandSelector () en un selector genérico () o buscador de intersecciones. Por ejemplo, podría llamar con el tipo y la consulta (Selector (tipo, consulta)). En este caso, escribiría Selector (marca, consulta). Ese parámetro adicional define qué matriz se comprueba y qué variable se establece (como alternativa, una instrucción if sería suficiente), pero no estoy seguro de cómo implementar dicho sistema. Apreciaría cualquier solución o consejo. Gracias,

brands = ["apple", "android", "windows"] brand = None def Main(): query = input("Enter your query: ").lower() brand = brandSelector(query) def brandSelector(query): try: brand = set(brands).intersection(query.split()) brand = ', '.join(brand) #Check Condition After Setting int_cond = confirmIntersection(brand) if int_cond == False: raise NameError("No Intersection") return brand except NameError: print("\nNo Intersection found between query defined brand and brands array\n") return brandDetectionFailure() 

Código completo: https://github.com/KentCoding/phoneTroubleshooting/blob/master/phoneTroubleshooting.py Versión de Python: v3.5.2

Mi bash:

 def Main(): init() query = input("Enter your query: ").lower() brand = Selector(brand, brands, query) keywordSelection(query, brand) def Selector(var, array, query): try: #Format Brands Query var = set(array).intersection(query.split()) var = ', '.join(var) #Check Condition After Setting int_cond = confirmIntersection(var) if int_cond == False: raise NameError("No Intersection") return var except NameError: print("\nNo Intersection found between query defined brand and brands array\n") return brandDetectionFailure() 

Pero da el error: UnboundLocalError: local variable 'brand' referenced before assignment

Por lo que puedo ver, no hay ninguna razón para que el argumento llamado var se pase al Selector() , así que simplemente haga que sea def Selector(array, query): y llámelo con brand = Selector(brands, query) .