Python 将类与此程序关联,以帮助更好地理解如何使用类进行编程

Python 将类与此程序关联,以帮助更好地理解如何使用类进行编程,python,class,Python,Class,我是python新手,尝试处理类和OOP。我似乎想不出什么时候我会在程序中使用类,所以我决定在对它进行单元测试实践之前,尝试用类来组织代码。我不确定向其中添加类是否有用,但我认为它至少可以组织起来。有人可以帮助相关的类和对象到这个代码请 def Max_Month(max): maxind = rainfalllist.index(max) maxmonth = months.pop(maxind) return maxmonth def Min_Month(min):

我是python新手,尝试处理类和OOP。我似乎想不出什么时候我会在程序中使用类,所以我决定在对它进行单元测试实践之前,尝试用类来组织代码。我不确定向其中添加类是否有用,但我认为它至少可以组织起来。有人可以帮助相关的类和对象到这个代码请

def Max_Month(max):
    maxind = rainfalllist.index(max)
    maxmonth = months.pop(maxind)
    return maxmonth

def Min_Month(min):
    minind = rainfalllist.index(min)
    minmonth = months.pop(minind)
    return minmonth

def Rain_Fall_Math(rainfalllist):
    ave_rain = sum(rainfalllist) / len(rainfalllist)
    high_rain = max(rainfalllist)
    min_rain = min(rainfalllist)
    print(f"Total Rainfall:{rainfalllist}")
    print(f"The average monthly precipitation:{ave_rain}")
    print(f"The highest monthly precipitation: {high_rain}")
    print(f"The lowest monthly precipitation: {min_rain}")
    print(f"The month(s) with the highest precipitation:",Max_Month(high_rain))
    print(f"The month(s) with the lowest precipitation:",Min_Month(min_rain))

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
rainfalllist = list()
for month in months:
    _ = float(input(f"What was the precipitation in {month}?"))
    rainfalllist.append(_)
Rain_Fall_Math(rainfalllist)

对于你的代码试图做的事情,我不认为OOP是一种方式。如果您想了解何时使用类和对象的示例,那么如果您想创建自己的数据结构(类似于c和c++中的struct)或抽象某些内容,最好使用它们。 要记住的另一件事是,仅仅因为可以使用OOP并不意味着它是完成某件事情的唯一方法。 您还应该了解OOP的四大支柱:抽象、继承、多态性和封装

假设你想用他们自己的属性来代表很多人,并对他们应用函数

你可以这样做

class人类:
humans=[]#所有人的数组
定义初始(自我、姓名、年龄、发型、眼睛、favfood、房子、身高):
self.name=名称
self.age=年龄
self.hairlr=hairlr
self.eyeclr=eyeclr
self.favfood=favfood
self.房子
自我高度=高度
Human.humans.append(self)
def成长(自我,年):
自我年龄+=年
自我身高+=年数*.04
def搬家公司(self,newhouse):
self.house=newhouse
def foo(自身、a、b、c):
通过
def互动(自我、他人):
如果self.name==另一个人:
问候
谈话
再见
如果self.age<另一个人的年龄:
东西
定义添加(自我,另一个人):
#DUNDER方法非常酷看看吧
#他们的行为基本上就像
#h1和h2是人类对象,如果您尝试执行以下操作,则会调用此方法
#h1+h2
self.height+=另一个人的高度
我不认为一个例子可以涵盖OOP的所有可能性,我认为OOP的发展方向有更好的例子,但我认为你可以看到OOP的用途

我的一个项目中的另一个例子就是使用继承和多态性

从数学导入sqrt
UIC类组件:
定义初始化(self,x,y,state):
self.x=x
self.y=y
self.state=状态
def getDist(自身、x2、y2):
返回sqrt((x2-self.x)**2+(y2-self.y)**2)
def setGlobalCoords(自身、c1、c2):
self.c1=c1
self.c2=c2
更新()
def update():
#东西
通过
类TextUiComponent(UIComponent):
定义初始化(self,x,y,state,text):
super(self,textui组件)。\uuuu init\uuuuu(x,y,state)
self.text=文本
def updateText(self、newtext、newfont):
self.text=newtext
self.font=newfont
self.update()#来自早期版本
类IMGUI组件(UIComponent):
定义初始化(自、x、y、状态、img):
super(self,textui组件)。\uuuu init\uuuuu(x,y,state)
self.img=img
def变换器(自身、刻度):
转换(self.img,scale)#或self.img.transfrom(scale)这都是伪代码
#其他东西
setGlobalCoords(比例,1+比例)

如果你想用自己的操作创建复杂的数据结构或者抽象的东西以及许多其他的例子,那么考虑这个范例。


OOP中还有很多东西需要讨论,我不可能给出一个完整的概述,但这是要点,如果你感到困惑,我建议你进行更多的研究,但OOP是一个强大的工具。

OOP的哪一部分最让你困惑?或者通常你为什么要用OOP来代替?