我有一个基于当前文件扩展名的动态字符串,名为" extension"
fileextension = os.path.splitext(file.filename)[1]
extension = fileextension.replace(".","")
让我们说延伸=" pdf"
我怎样才能调用下面的Ext.pdf()实例变量?
class Ext:
def pdf(self):
self.filetype = "pdf - Adobe Portable Document Format"
def txt(self):
self.filetype = "txt - ASCII text file"
Ext = Ext()
我试过了:
Ext.filetype = getattr(Ext, extension)()
但这会出现一个空白条目
答案 0 :(得分:4)
您正确调用了实例属性。要解决您的问题,请不要将结果分配给filetype
属性:
ext = Ext()
getattr(ext, extension)()
print(ext.filetype)
它无效,因为您在None
和pdf()
方法中返回txt()
并将其分配给filetype
属性。
请注意,我将Ext
的实例重新标记为ext
,因为通过实例覆盖类定义可能不是一个好主意。