我在学习Python语言的同时我正在做一个主题项目,我意识到我有两个类(类senA和senB)代表两个相似的元素,因此,我想知道这两个类是否可以分组到一个通用类(General类)中,我正在查看内部类,但不幸的是,因为我必须访问每个类(senA和senB)的参数,所以总是会生成错误。我的代码是这样的
class senA():
def __init__(self, arg, arg2):
self.arg = arg
self.arg2 = arg2
class sensB():
def __init__(self, arg3):
self.arg3 = arg3
for i in range (3):
obj = senA('hx', 'ex')
objx = sensB ('hello')
values=list(attrs.values())
valuesx=list(attrsx.values())
list_VALORES.append(values)
list_metodos.append(valuesx)
print(list_metodos)
print(list_VALORES)
它工作得很好,但我想将senA和senB类关联到一个名为classGeneral的类中
class general():
class senA():
def __init__(self, arg, arg2):
self.arg = arg
self.arg2 = arg2
class sensB():
def __init__(self, arg3):
self.arg3 = arg3
但它会产生持续不断的错误,例如,当我实例化对象时,程序会停止识别类。你知道我该怎么解决这个问题吗
很抱歉我的英语不好,但我的母语不是英语。我试着说得尽可能清楚
发布于 2020-08-12 16:14:24
据我所知,您想要的是创建一个单独的模块来保存senA
和sensB
类。如果您创建了一个名为general.py
的python文件来保存类定义,则可以将该文件导入到另一个python脚本中。因此,在您的main.py
中,您可以在顶部添加以下行:from general import senA, sensB
,这样您就可以像平常一样使用它们了。
如果您的类都是相似的并且共享属性,那么您也可以使用继承。例如:
class General:
def __init__(self, arg1):
self.arg1 = arg1 # argument that both senA and sensB use
class senA(General):
def __init__(self, arg1, arg2):
super().__init__(arg1)
self.arg2 = arg2
class sensB(General):
def __init__(self, arg1, arg2, arg3):
super().__init__(arg1)
self.arg2 = arg2
self.arg3 = arg3
然后,您可以正常访问这些类中的属性,例如:
a = senA('arg1 value', 'arg2 value')
print(a.arg1) # returns 'arg1 value'
print(a.arg2) # returns 'arg2 value'
https://stackoverflow.com/questions/63380417
复制