小白提问：python 在什么时候用函数，什么时候用类？
半路自学的编程小透明，刚刚接触python这门语言。现在有个疑问想请教大家。
我想问的是，大家是如何判断、以及用什么标准来决定什么时候使用函数？什么时候使用类？
函数还好说，一段代码需要重复使用的时候用函数会减少代码量。
但是我遇到了这样一个实例，由于目前思想上更习惯使用面向过程编程，所以在编写下面这个小小爬虫程序的时候就写成了这样的形式：
```
# 任务目标是爬取特定网页上图片列表页面的所有图片。
# 由于是列表页面所以有一个总页数，就使用了 for 循环遍历所有页面，然后下载个页面图片的思路。
# 大致如下

base_url = 'xxx/page='    # 网址忽略了
pages = 90                # 假设一共有 90 页

for page in range(1, pages + 1):          # 首先使用 for 遍历列表的每一页，获取所有的 img 标签
    url = base_url + str(page)
    rq = requests.get(url)
    soup = BeautifulSoup(rq.text)
    all_tag_img = soup.find_all('img')
    
    for tag in all_tag_img:              # 然后在通过 for 遍历所有标签获取下载地址，下载后保存
        img_url = tag.get('src')
        img = requests.get(img_url)
        # 下面就是获取图片的名称，然后保存什么的了
        
```
这样下来的话，流程上面感觉比较接近普通浏览的顺序，
但这是这里用不到函数，更用不到类，但是见到过很多爬虫教程，大家会把例如下载图片、获取名称、保存这些东西封装成函数。有些直接就是创建一个爬虫的类，然后增加各种功能。
所有，问题就是，这样一个任务，你们回去用函数或类么？为什么？
我觉得编程最难的是思想，所有我特别想知道你们是怎么考虑的
万分感谢
个人觉得，其实这个跟你需要完成的任务有关。打个比方，你只是自己想写一个程序，方便自己工作，那你就可以写函数为主，反正自己知道这些函数什么意思，有时候换地方使用直接copy一下，修修改改就好了。
而如果是完成某个大的项目，项目要分很多块，那么就必须写类了。有人说我写个函数，最终实现起来还不是一样？实现起来是一样，那么后期维护呢？你是更喜欢看一个模块，这个模块有几个类，还是说喜欢看几十个函数呢？显而易见，一般稍微有点样子的项目都是分成几个模块，每个模块会分出几个类来各自实现某个特定的任务。到代码层的时候，才会需要看函数的代码。
如果一个项目是由按照某些顺序，直接调用几十个函数完成的，相信后期维护的人会疯吧？好气啊，全是函数，虽然有说明，也很费事的吧？