cd86254081 2018-10-19 05:51 采纳率: 100%
浏览 1771
已采纳

python方法和函数的对比

方法和函数相比各有什么优势呢。比如在一个模块下要实现一个功能,在类内实现一个方法比起在类外实现一个函数,再在类内调用这个函数来说有什么优势吗,或者说该在什么时候用方法,什么时候用函数。

例如下面两种写法 我感觉差不多?
一.
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

  • 写回答

4条回答 默认 最新

  • lyhsdy 2018-10-20 01:54
    关注

    代码的结果是一样的,是使用了不同的方法去实现;如果是在少量的代码量来说,直接写函数比较方便,但是代码量多了,就需要封装起来容易后期维护;
    这就好比,你在处理10行的数据的时候,可能你使用EXCEL的基础功能就最快,在处理1000行数据,可能就需要用EXCEL的公式或者透视表,但是到了1000万行,那就需要用数据库等方法了,所以不同量级的事情就有不同量级的处理方式

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 SQL Server下载
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求