gpt4 book ai didi

python - 自定义文件类。这可行吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:15 24 4
gpt4 key购买 nike

目前我正在读写二进制文件,并且经常调用 struct pack/unpack 函数。而不是不断地写类似的东西

struct.unpack("3f", myFile.read(12))

我决定写一个函数来省去一些打字,所以我的代码中上面的语句等价于

my_unpack(myFile, '3f')

my_unpack 定义为

struct.unpack(fmt, f.read(struct.calcsize(fmt))

但后来我在想,如果我改写像这样的东西会怎么样

myFile.get_float(3)myFile.get_char(12)myFile.get_string(20)

我相信这会使它更容易阅读,特别是因为打包和解包的语法对于那些不熟悉它的人来说可能看起来令人生畏。

这是否足以让我编写自己的继承 File 类的类只是为了提供几个额外的方法?

最佳答案

不要继承。相反,撰写:

class StructReader(object):
def __init__(self, input_file):
self.input_file = input_file

def get_float(self, n):
fmt = ...
return struct.unpack(fmt, self.input_file.read(struct.calcsize(fmt)))

...

当你创建子类时,你不得不担心命名空间的冲突。组合避免了这个问题。

关于python - 自定义文件类。这可行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6535184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com