Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不确定在Python中的类中放什么/不放什么_Python_Oop - Fatal编程技术网

不确定在Python中的类中放什么/不放什么

不确定在Python中的类中放什么/不放什么,python,oop,Python,Oop,我对Python和编程非常陌生。假设我有一个文本文件,其中有一堆人的名字、他们写的文章和他们分配的ID。我用这些属性创建了一个类,并将该文本文件放入该类中。没问题。现在,系统会提示用户从该文本文件中输入某人的姓名,并打印该人的所有文章。我的问题是:我是否通过在类中创建一个新函数来实现这一点?还是在课堂之外创建 我不知道什么时候什么时候不去上课。我想我知道类定义了对象的属性。但是,当我向类添加对象时,我发现在类之外引用该对象很困难。例如,当要求用户输入名称并将其与对象进行比较时 我明白这不是一个最

我对Python和编程非常陌生。假设我有一个文本文件,其中有一堆人的名字、他们写的文章和他们分配的ID。我用这些属性创建了一个类,并将该文本文件放入该类中。没问题。现在,系统会提示用户从该文本文件中输入某人的姓名,并打印该人的所有文章。我的问题是:我是否通过在类中创建一个新函数来实现这一点?还是在课堂之外创建

我不知道什么时候什么时候不去上课。我想我知道类定义了对象的属性。但是,当我向类添加对象时,我发现在类之外引用该对象很困难。例如,当要求用户输入名称并将其与对象进行比较时

我明白这不是一个最大的问题,我相信有些人会因为我的帖子而责骂我。我已经没有选择了,我迫切需要帮助。我在看书,做在线教程,看视频,但它并没有像它应该的那样点击。如果删除了,我理解


啊哈!谢谢大家的回复!我能够在类外设置函数,并将输入变量与该类中的author属性和KA-BLAMO进行比较!它打印正确!我还有很多东西要学,但正是这样的时刻让我变成了一个头晕的小女生。非常感谢你们的帮助和友好

类是经典面向对象编程的关键,因为类定义了对象的数据和行为。在您的情况下,您应该问问自己,是否适合由该类人员打印所有文章。但是你没有给我足够的关于你的班级的信息,我不敢直接就此发表意见。表示作者的类可能如下所示:

class Author:
    def __init__(self, name, articles):
        self.name = name
        self.articles = articles
但是这个类不知道不止一个作者,所以它没有一个方法来搜索作者列表是没有意义的。但是定义另一个类来表示一组作者有意义吗?你比我更了解你的要求,但我不这么认为。Python在内部很好地处理集合

最后,我的建议是创建对象(通过类的方式),对您试图在代码中表示的真实世界事物进行建模。它们应该具有在该模型的上下文中有意义的数据和行为(读取:属性和方法)。幸运的是,Python没有强制执行死板的一切都是类OOP,并且允许您在创建自己的“author collection”类时编写模块级函数,这对于您的需要来说太麻烦了:

authors = [Author(name, articles) for name, articles in input_data]
def articles_by_author(author_name):
    global authors
    for auth in authors:
        if author_name == auth.name:
            return auth.articles

将一个类看作是代码中的一个蓝图。你知道大工厂是如何一次又一次地制造一件物品的吗?他们制作了那个物体的蓝图。将所有需要的组件添加到蓝图中,比如它应该做什么,它将如何响应某些事件

当您创建类时,您会在其中创建一些函数,这些函数将执行一项任务,有时还会返回一个值或另一个对象!你可以在这个类中做任何事情,它的美妙之处在于你可以创建这个类的对象,它将携带所有的函数和属性,你可以从你的新对象中访问它们。您创建的每个附加对象都是唯一的,可以与其他对象分开


这是最基本的。我非常乐意帮助你。很抱歉没有深入。我是在手机上写的:)

你说得对,OP,这不是真正的主题,因为它更多的是关于代码设计而不是编码本身。我很乐意帮你聊天,但你的名声不够。好吧,谢谢你。我将继续讨论truckin。我相信你的问题会很适合@user2813623。根据Cilyan的说法,我已将帖子标记为移至programmers.stackexchange.com。快速思考:将类看作离散对象。你可能有一个
类作者
有一个作品列表,或者一个
类库
有一个
类作品
项目列表,可能有一个查找功能(进入
是有意义的。查找(作者名称)
不是吗?)