尝试构建一个函数,该函数将返回2个线段之间的总重叠距离,由start和end int表示.
目前我有这个:我在某个地方上网,
def overlap(min1, max1, min2, max2):
"""returns the overlap between two lines that are 1D"""
result = None
if min1 >= max2 or min2 >= max1: result = 0
elif min1 <= min2:
result = max1 - min2
else: result = max2 - min1
return result
Run Code Online (Sandbox Code Playgroud)
这适用于0 100,0,20的情况,它返回100.这显然是错误的.有一种简单的计算方法可以返回正确的值吗?
类的静态方法是否可以返回其类的新实例.
class Foo(object):
@staticmethod
def return_new():
"returns a new instance of the class"
new_instance = ???
return new_instance
Run Code Online (Sandbox Code Playgroud)
我想要它所以Foo的任何子类都将返回子类而不是Foo实例.所以取代??? 与Foo()不会这样做.