微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python导入触发返回变量的函数的其他文件变量

如何解决Python导入触发返回变量的函数的其他文件变量

好的,所以问题是我需要导入一个变量,该变量需要触发一个函数检查文件是否存在,如果不存在,则下载文件并设置变量。我通常会从具有 getter 和 setter 的类中获取功能,但由于我不希望我的用户必须为该类设置变量,这带来了一个有趣的问题。

所以这可行,但没有所需的功能

运行.py文件

from examples.mnist import images,labels,show

print(images)
print(labels)

show()

MNIST 文件

images = "Images goes here"
labels = "Labels go here"

def show():
    print("Im showing your image")

简单来说。如何在不让用户设置对象/类的情况下导入具有 getter/setter 函数的变量?

解决方法

您可以定义模块级别的 __getattr__,如 PEP 562 所指定:

# mnist.py
def __getattr__(name):
    if name=='images':
        if not file_exist_check():
            download_file()
        return read_file()
    raise AttributeError(f"module {__name__} has no attribute {name}")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。