我想创建一种实用程序类,它仅包含可通过名称类前缀调用的静态方法。看起来我做错了:)
这是我的小课:
class FileUtility():
@staticmethod
def GetFileSize(self, fullName):
fileSize = os.path.getsize(fullName)
return fileSize
@staticmethod
def GetFilePath(self, fullName):
filePath = os.path.abspath(fullName)
return filePath
现在,我的“主要”方法是:
from FileUtility import *
def main():
path = 'C:\config_file_list.txt'
dir = FileUtility.GetFilePath(path)
print dir
我收到一个错误:unbound method GetFilePath() must be called with FileUtility instance as first argument (got str instance instead)
。
这里有几个问题:
TypeError: GetFilePath() takes exactly 1 argument (2 given)
新的main
:
from FileUtility import *
def main():
objFile = FileUtility()
path = 'H:\config_file_list.txt'
dir = objFile.GetFilePath(path)
print dir
参考方案
之所以会出现错误,是因为您在每个函数中都使用了self
参数。它们是静态的,您不需要它。
但是,执行此操作的“pythonic”方法不是让类具有静态方法,而是使它们在模块中成为自由函数。
#fileutility.py:
def get_file_size(fullName):
fileSize = os.path.getsize(fullName)
return fileSize
def get_file_path(fullName):
filePath = os.path.abspath(fullName)
return filePath
现在,在您的其他python文件中(假设fileutility.py位于同一目录或PYTHONPATH
上)
import fileutility
fileutility.get_file_size("myfile.txt")
fileutility.get_file_path("that.txt")
它没有特别提到静态方法,但是如果您来自另一种语言PEP 8,则python样式指南非常适合阅读和介绍python程序员的想法。
Python GPU资源利用 - python我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…
Python:图像处理可产生皱纹纸效果 - python也许很难描述我的问题。我正在寻找Python中的算法,以在带有某些文本的白色图像上创建皱纹纸效果。我的第一个尝试是在带有文字的图像上添加一些真实的皱纹纸图像(具有透明度)。看起来不错,但副作用是文本没有真正起皱。所以我正在寻找更好的解决方案,有什么想法吗?谢谢 参考方案 除了使用透明性之外,假设您有两张相同尺寸的图像,一张在皱纹纸上明亮,一张在白色背景上有深…
在Python中避免相对导入和sys.path - python当前,我有一个Python项目正在处理这样的目录结构:tests/ corpus/ __init__.py tests.py monkey/ corpus/ corpus.py setup.py 我想将tests.py(在测试/语料库中)导入corpus.py(在猴子/语料库中)。我已经看到许多涉及使用相对导入和sys.path的解决方案,但是我也看到人们直…
Python uuid4,如何限制唯一字符的长度 - python在Python中,我正在使用uuid4()方法创建唯一的字符集。但是我找不到将其限制为10或8个字符的方法。有什么办法吗?uuid4()ffc69c1b-9d87-4c19-8dac-c09ca857e3fc谢谢。 参考方案 尝试:x = uuid4() str(x)[:8] 输出:"ffc69c1b" Is there a way to…
Python sqlite3数据库已锁定 - python我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…