我有一个包含很多类的应用程序。这些类具有与def相同的许多功能,而显然有些不是。
是否有一种方法可以定义在一个地方具有通用功能且可用于多个类的函数,还是我必须在每个类中至少具有def?
答案 0 :(得分:3)
首先定义在外部定义的func
。
然后,要在不同的类中引用该函数,请在类内部使用相同的func
def func():
print('func')
class B:
def funcB(self):
print('funcB')
def func(self):
func()
class C:
def funcC(self):
print('funcC')
def func(self):
func()
现在可以按如下方式调用它们。
b = B()
b.func()
#funcA
b.funcB()
#funcB
c = C()
c.func()
#funcA
c.funcC()
#funcC
答案 1 :(得分:1)
正如Amadan在评论中指出的那样,类继承是共享类对象的一种良好且一致的方式。下面是一个示例:
class animals:
def __init__(self):
pass
def has_legs(self, type):
if type == "snake":
print(False)
else:
print(True)
class dog(animals):
def __init__(self):
# This is where the magic happens
animals.__init__(self)
pass
def dog_has_legs(self):
self.has_legs("dog")
bofur = dog()
bofur.dog_has_legs()
bofur.has_legs("snake")
结果:
>>> bofur.dog_has_legs()
True
>>> bofur.has_legs("snake")
False
如您所见,类dog
继承自animals
,因此它可以调用animals
类中的函数和其他对象,就像它们属于{{1} }类。