我有个设计问题。我有一个函数loadImage(),用于加载图像文件。现在它接受一个作为文件路径的字符串。但我也希望能够加载文件,而不是在物理磁盘上,例如生成的程序。我可以让它接受一个字符串,但是它怎么知道这个字符串不是文件路径而是文件数据呢?我可以添加一个额外的布尔参数来指定这一点,但这听起来不太清楚。有什么想法吗? 现在是这样的:
def loadImage(filepath):
file = open(filepath, 'rb')
data = file.read()
# do stuff with data
另一个版本是
def loadImage(data):
# do stuff with data
如何让这个函数同时接受“filepath”或“data”并猜测它是什么?你知道吗
创建两个函数
loadImageFromString
和loadImageFromFile
怎么样?你知道吗您可以将
loadImage
函数更改为期望打开类似文件的对象,例如:。。。然后从两个函数调用,其中一个需要路径,另一个需要包含数据的字符串:
由于是Python,您可以很容易地区分文件名和数据字符串。我会这样做:
其他方法是使用
try
块,而不是使用os.path
,但方法的本质是相同的。你知道吗相关问题 更多 >
编程相关推荐