在OOP中使用函数是不好的做法?

 幽幽独舞99 发布于 2023-01-04 10:05

我是编程新手.我最近读过:

您的程序应该具有封装在函数或类方法中的几乎所有功能

这使得我似乎不应该同时拥有这两个函数和方法.我还读到方法应该简短.

好吧,我最近制作了一个从博客下载图像的小程序.我使用了类和OOP方法,因为我需要继承某些东西.

但是,因为方法应该简短并做一件事,我的程序不能做太多.我的问题是,如果我试图使用纯OOP方法,怎么可能避免编写函数?

我的脚本基本遵循以下模式:

class Tumblr(object):

    def __init__(self, user):
        self.user = user

    def get_posts(self):
        """Use tumblr api to return a user's posts."""
        return client['blog']['posts']

    def parse_images(self):
       """Returns images."""
        images = []
        for post in posts:
            if 'image' in post:
                images.append(post['image'])
        return images

    def parse_videos(self):
      """Returns videos."""

def main():
            # this is a function, and thus not OOP?

我还有其他类用于不同的网站API,还有一个Downloader类,它实际上将文件下载到磁盘和正确的目录.问题是,现在我所有的都是这些孤立的类和方法.

我想创建一个main也可以使用其他功能的函数,但是我再次认为这不是正确的OOP.

如何在不编写函数的情况下实际完成工作?(我读过的教科书说,如果我使用方法,不应该在纯OOP中使用函数.)

1 个回答
  • 当函数满足时,不要去写类.从禅宗的Python中解释 ;

    简单比复杂更好.

    实用性胜过纯洁.

    在Python中,您可以使用许多编程方法; 程序性,面向对象,功能性.都有自己的优点和缺点.但都有它们的用途.

    如果您正在努力为问题构建纯粹的面向对象的解决方案,那么这可能表明您正在做错,并且对象不是解决该特定问题的最佳解决方案.

    您应该采用最适合问题的方法.

    Jack Diederich的PyCon演讲"停止写作课程"包含一些很好的例子.一个有说服力的事后明显的教训是,如果你的对象有两种方法,其中一种是__init__伪装,它实际上是一种伪装的功能.

    2023-01-04 10:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有