基本上,这是我的代码格式:
class SomeClass():
# RegEx to remove all non-alphanumeric characters from a string
def alphaNum(original):
return str(re.sub(r'[^a-zA-Z0-9]','', original))
# Write to xlsx file =====================================================
def write(self):
#CODE###
uglyString = 'asasdf-)aws'
print alphaNum(uglyString)
#I've also tried calling self.alphaNum(uglyString), for what it's worth
我得到了全球名称' alphaNum'没有定义"当我从另一个文件调用write时(详细信息遗漏,但我知道print语句是发生错误的地方)
我是正面的我忽略了一些愚蠢的事情,我(我想我认为)对范围有很好的处理,在使用它们之前定义事物等等。
编辑:
感谢帮帮!我最终只是将alphaNum()移到了课堂之外。对于那些感兴趣的人,其实际目的是处理亚马逊的CloudFormation boto界面的怪癖。它会愉快地返回资产ID值' - '在他们中间,然后抱怨你在模板中没有任何东西。这就是生活......
答案 0 :(得分:3)
那是因为alphaNum
是SomeClass
的成员。此外,它不是staticmethod
,因此第一个参数应为self
。
我不太确定你为什么把这一切都放在课堂上,但它看起来应该是这样的:
class SomeClass():
@staticmethod
def alphaNum(original):
"""RegEx to remove all non-alphanumeric characters from a string"""
return str(re.sub(r'[^a-zA-Z0-9]','', original))
def write(self):
"""Write to xlsx file"""
uglyString = 'asasdf-)aws'
print SomeClass.alphaNum(uglyString)