Was able to hack my local version of skfuzzy relatively easily to pass the defuzz method dynically, done on creation of consequent, for example as follows:
self.diagnosis = ct.Consequent(np.arange(0, 200, 1), 'diagnosis', defuzzify_method='som')
then maintained __init__ of consequent in antecedent_consequent.py to add another named argument, wjhich is then passed when call to super to instantiate, as follows:
def __init__(self, universe, label, defuzzify_method='centroid'):
super(Consequent, self).__init__(universe, label, defuzzify_method)
So whatever defuzz method you pass in when creating the consequent will replace the default centroid. Hope this helps someone.