欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python如何根据类名实例化类

程序员文章站 2022-03-07 23:47:37
个人认为比较好的一种方法:# 假设当前目录中有个名为losses.py的模块,我们要调用其中的名为HingeGanLoss的类file_name = 'losses'class_name = 'HingeGanLoss'modules = __import__(file_name)ganloss = getattr(modules, class_name)()input = []for i in range(4): input.append(torch.ones((16, 1,...

个人认为比较好的一种方法:

# 假设当前目录中有个名为losses.py的模块,我们要调用其中的名为HingeGanLoss的类
file_name = 'losses'
class_name = 'HingeGanLoss'
modules = __import__(file_name)

ganloss = getattr(modules, class_name)()

input = []
for i in range(4):
    input.append(torch.ones((16, 1, 1, 1)) * 0.5)

re = ganloss(input, target_is_real=True)
print(re)

其中 __import__() getattr() 都是python内置函数。

 

1. __import__()

__import__() 函数用于动态加载类和函数 。如果一个模块经常变化就可以使用 __import__() 来动态载入。

语法:

__import__(name[, globals[, locals[, fromlist[, level]]]]) # name为模块名

 

2. getattr()

getattr() 函数用于返回一个对象属性值。

语法:

getattr(object, name[, default])

# object -- 对象。
# name -- 字符串,对象属性。
# default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。

 

 

本文地址:https://blog.csdn.net/chongchong247619000/article/details/109863371

相关标签: Python