小编MaK*_*aNu的帖子

setattr 是否调用属性 setter func?

我尝试在我的代码中适应良好的 oop 行为,并且想知道以下内容:

我一般有这样的类设计:

class MyClass():
    def __init__(self,arg1):
        self.arg1 = arg1

    @property
    def arg1(self):
        return _arg1

    @arg1.setter
    def arg1(self, value):
        self._arg1 = value
Run Code Online (Sandbox Code Playgroud)

如果我现在编写一个具有字典并使用该字典来设置类属性的函数:

    def set_my_dict(self):
        argdict = {'arg1':4}
        for k, v in argdict:
            setattr(self, k, v)
Run Code Online (Sandbox Code Playgroud)

setattr在这种情况下,这是否会调用设置器来进行可能的类型检查等?

python oop properties setattr

3
推荐指数
1
解决办法
1228
查看次数

是否将 eval 与 argparse save 一起使用?

我使用 argparse 和 eval 来更改日志记录的日志级别。

parser = argparse.ArgumentParser(
        description="Adds New Location to the Snipe-IT Server")
parser.add_argument('-l', '--loglevel', type=str, default='WARNING', choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'])
args = parser.parse_args()
logging.basicConfig(level=eval(f"logging.{args.loglevel}"))
Run Code Online (Sandbox Code Playgroud)

我想知道在这种情况下使用 eval 是否可以节省?我不知道在这种情况下选择是否会限制输入。

python logging argparse

0
推荐指数
1
解决办法
123
查看次数

标签 统计

python ×2

argparse ×1

logging ×1

oop ×1

properties ×1

setattr ×1