python中在另一个类中创建类的正确方法是什么?
我正在学习python,我知道我下面所做的是正确的还是有更好的编写方法python中在另一个类中创建类的正确方法是什么?,python,class,Python,Class,我正在学习python,我知道我下面所做的是正确的还是有更好的编写方法 class FUNC: def __init__(self,a,b): self.a = a self.b = b def Add(self): x = self.a + self.b return x def Sub(self): y = self.a - self.b return y class T
class FUNC:
def __init__(self,a,b):
self.a = a
self.b = b
def Add(self):
x = self.a + self.b
return x
def Sub(self):
y = self.a - self.b
return y
class TASKS:
def tsk1(self):
PrintObj1 = FUNC(10,20)
print(PrintObj1.Add())
def tsk2(self):
PrintObj2 = FUNC(100,50)
print(PrintObj2.Sub())
class RUNTASK:
Obj = TASKS()
Obj.tsk1()
Obj.tsk2()
是的,您的代码看起来是正确的,但是您也可以使用只包含静态方法的
TASKS
类。静态方法是属于类而不是类实例的方法,因此不需要创建类实例来调用静态方法(在这种情况下很方便):
这里要做的是在一个类的方法中创建另一个类的对象。如果要显示
FUNC
类完全属于任务
,可以执行以下操作:
class TASKS:
class FUNC:
def __init__(self,a,b):
self.a = a
self.b = b
def Add(self):
x = self.a + self.b
return x
def Sub(self):
y = self.a - self.b
return y
@staticmethod
def tsk1():
PrintObj1 = TASKS.FUNC(10,20)
print(PrintObj1.Add())
def tsk2(self):
PrintObj2 = self.FUNC(100,50)
print(PrintObj2.Sub())
TASKS.tsk1()
obj = TASKS()
obj.tsk2()
这称为内部类或嵌套类。这在Python中并不常见。此外,我还展示了访问内部类的两种方法,一种是使用实例方法,另一种是使用@ArtsiomPraneuski建议的静态方法(在这里似乎更合适)。看起来绝对不错,您可能是在
Obj=TASKS
而不是Obj=TASKS()
之后?除非大写字母是常量,否则不应该真正使用大写字母作为变量。RUNTASK
看起来应该是一个函数,而不是一个类。拥有RUNTASK
对象意味着什么?
class TASKS:
class FUNC:
def __init__(self,a,b):
self.a = a
self.b = b
def Add(self):
x = self.a + self.b
return x
def Sub(self):
y = self.a - self.b
return y
@staticmethod
def tsk1():
PrintObj1 = TASKS.FUNC(10,20)
print(PrintObj1.Add())
def tsk2(self):
PrintObj2 = self.FUNC(100,50)
print(PrintObj2.Sub())
TASKS.tsk1()
obj = TASKS()
obj.tsk2()