不确定在Python中的类中放什么/不放什么
我对Python和编程非常陌生。假设我有一个文本文件,其中有一堆人的名字、他们写的文章和他们分配的ID。我用这些属性创建了一个类,并将该文本文件放入该类中。没问题。现在,系统会提示用户从该文本文件中输入某人的姓名,并打印该人的所有文章。我的问题是:我是否通过在类中创建一个新函数来实现这一点?还是在课堂之外创建 我不知道什么时候什么时候不去上课。我想我知道类定义了对象的属性。但是,当我向类添加对象时,我发现在类之外引用该对象很困难。例如,当要求用户输入名称并将其与对象进行比较时 我明白这不是一个最大的问题,我相信有些人会因为我的帖子而责骂我。我已经没有选择了,我迫切需要帮助。我在看书,做在线教程,看视频,但它并没有像它应该的那样点击。如果删除了,我理解不确定在Python中的类中放什么/不放什么,python,oop,Python,Oop,我对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。快速思考:将类看作离散对象。你可能有一个
类作者
有一个作品列表,或者一个类库
有一个类作品
项目列表,可能有一个查找功能(进入库
和是有意义的。查找(作者名称)
不是吗?)