我知道类似的问题已经被问/回答了几次。但是请继续读下去...
我试图从字符串值创建一个类,如Python 3.6中的“将字符串转换为Python类对象”中所述。
utils.py
class Foo(object):
def __init__(self):
print("In the constructor of Foo")
def What(self):
print("so what ... ")
class FooParam(object):
def __init__(self, v):
self.value = v
print("In the constructor of FooParam")
def What(self):
print("Value=" % self.value)
print("So what now ...")
welcome.py
def TEST1():
m = importlib.import_module("utils")
c = getattr(m, "Foo")
c.What()
if __name__ == '__main__':
TEST1()
错误
TypeError: What() missing 1 required positional argument: 'self'
那么我做错了什么?
此外,我如何创建一个对象的"foParam"并传递一个值给构造函数。
导入模块后,只需使用存储在导入模块中的变量进行访问:
m = importlib.import_module("utils")
foo = m.Foo()
foo.What()
import_module执行与导入相同的步骤。
这个c=getattr(m,“Foo”)
代码行相当于f=Foo
,这意味着您不是在创建实例,而是在获取对该类的引用。
我怀疑c是类Foo,但不是类的实例。
这相当于简单地调用
Foo.what()
这就是为什么自我没有定义!
而您想要的是创建类的实例(给它一个“self”属性),然后调用它的方法,即。
foo_instance = Foo()
foo_instance.What()
所以试着用..替换c.What()。。
foo_instance = c()
foo_instance.What()
对于foParam:
#import the class FooParam
c = getattr(m, "FooParam")
#create an instance of the class, initializing its values (and self)
fooparam_instance = c(3.14)
#call its method!
fooparam_instance.What()
总的来说,我会将变量c重命名为foo_import和fooparam_import:)
本文向大家介绍如何在Python中创建类对象?,包括了如何在Python中创建类对象?的使用技巧和注意事项,需要的朋友参考一下 使用该类的构造函数创建一个类对象。然后将该对象称为类的实例。类实例化使用函数表示法。 在下面的代码中,我们定义一个类并创建了相同类的实例,如下所示
主要内容:Python类的实例化,Python类对象的使用通过前面章节的学习,我们已经学会如何定义一个类,但要想使用它,必须创建该类的对象。 创建类对象的过程,又称为类的实例化。 Python类的实例化 对已定义好的类进行实例化,其语法格式如下: 类名(参数) 定义类时,如果没有手动添加 __init__() 构造方法,又或者添加的 __init__() 中仅有一个 self 参数,则创建类对象时的参数可以省略不写。 例如,如下代码创建了名为 CLang
问题内容: 我试图通过传递另一个jsonObject与jsonObject转换jsonArray。请提供任何示例代码? 问题答案: 这样,您可以为响应编写POJO / Model类 ----------------------------------- com.example.HomePlace.java -------- ----------------------------------- c
问题内容: 假设您必须在python中创建10个类对象,并对其进行处理,例如: 您将如何循环处理,并为每个对象分配一个变量(如),从而使代码更短?每个对象都可以在循环外部访问 问题答案: 每天都会以不同的方式询问这个问题。答案是:将数据放在变量名之外,这是必填的博客文章。 在这种情况下,为什么不列出objs?
问题内容: 我需要使用NDK以及JNI将一些功能实现到Android应用程序中。 这是我所写的C代码: 我的问题或多或少在代码内得到了解释。也许还可以:函数(jobject)的返回类型可以吗? 现在,NDKTest.java: 当我尝试运行代码时,它不起作用。 问题答案: 既然是内部类,那么获得它的方法就是 内部类的约定在权威规范中并未真正明确记录,但是根深蒂固地存在于如此多的工作代码中,因此不太
我需要使用Jackson创建一个JSON字符串,如下所示。我知道这里已经回答了类似的问题:使用jackson创建一个json对象 但我期望的JSON字符串与上面示例中的有点不同。