方法和函数相比各有什么优势呢。比如在一个模块下要实现一个功能,在类内实现一个方法比起在类外实现一个函数,再在类内调用这个函数来说有什么优势吗,或者说该在什么时候用方法,什么时候用函数。
例如下面两种写法 我感觉差不多?
一.
class Solution(object):
def firstBadVersion(self, endIndex):
"""
:type n: int
:rtype: int
"""
return CheckbadVersion(endIndex)
def CheckbadVersion(endIndex, startIndex=1):
if endIndex == 1 and isBadVersion(1):
return 1
if not isBadVersion((startIndex + endIndex) / 2) and not isBadVersion((startIndex + endIndex) / 2 + 1) :
startIndex = (startIndex + endIndex) / 2
return CheckbadVersion(endIndex, startIndex)
elif isBadVersion((startIndex + endIndex) / 2) and isBadVersion((startIndex + endIndex) / 2 + 1):
endIndex = (startIndex + endIndex) / 2
return CheckbadVersion(endIndex, startIndex)
elif not isBadVersion((startIndex + endIndex) / 2) and isBadVersion((startIndex + endIndex) / 2 + 1):
return (startIndex + endIndex) / 2 + 1
二.
class Solution(object):
def firstBadVersion(self, endIndex,startIndex=1):
"""
:type n: int
:rtype: int
"""
if endIndex==1 and isBadVersion(1):
return 1
elif isBadVersion((startIndex+endIndex)/2)==False and isBadVersion((startIndex+endIndex)/2+1)==False :
startIndex=(startIndex+endIndex)/2
return self.firstBadVersion(endIndex,startIndex)
elif isBadVersion((startIndex+endIndex) / 2) == True and isBadVersion((startIndex+endIndex )/ 2 + 1) == True:
endIndex=(startIndex+endIndex)/2
return self.firstBadVersion(endIndex,startIndex)
elif isBadVersion((startIndex+endIndex) / 2) == False and isBadVersion((startIndex+endIndex) / 2 + 1) == True:
return (startIndex+endIndex) / 2+1