请有人向我解释一下吗?我读过和听过的关于OOP的一切都让它听起来像程序编程。帮助
答案 0 :(得分:3)
我将在黑暗中拍摄并假设你是(a)第一次拾取编码,因为你正在上课或(b)第一次拾取编码,因为你感觉就像。无论哪种方式,很好的选择,这很有趣
无论哪种方式,你都是新手,你可能会从一种练习册(无论是在线还是在教室)编写一些代码。代码可能看起来像这样。
Assignment: populate a list with all prime numbers between 1 and 100
def makePrimeList():
my_list = []
for x in range(1, 100):
if isPrime(x):
my_list.append(x)
return my_list
def isPrime(x):
if x<2:
return False
for i in range(2,x):
if not x%i:
return False
return True
这种编程对于学习如何编码非常有用。它告诉你什么代码可以在非常基本的水平上做。但是,当你做更复杂的事情时,你将不得不使用OOP,并进行一些课程。
OOP的基本前提是你创建了一些类,然后用这些类做了些东西。类基本上是一种创建自己的对象的方式(因此面向对象编程中的“对象”)。例如,您可以创建一个Card
类。这个类可能会有一些属性,例如Card.number
或Card.suit
来描述卡片。它在Python中看起来像这样:
Class Card:
def __init__(self, number, suit): #This method, called an __init__ method, creates a card
self.number=number
self.suit=suit
现在,我可以调用代码my_new_card = Card(4, "spades")
来返回一张卡片。如果我在我的代码my_new_card.number
中说过,它会返回4
而my_new_card.suit
会返回"spades"
。因此,正如您所看到的,OOP可以通过多种方式改变您的思考方式,并使用代码。有关类的更多信息可以在维基页面Classes上找到。我想到它的方式:一个类非常像list
或dict
,因为你决定它是如何格式化的,以及你可以在其上标记的函数。就像,列表中包含.append()
方法一样,您可以将其标记为Card
类:
def doubleUp(card):
card.number *= 2
所有这些方法都是您输入到该功能的卡的数量的两倍。没什么特别的,但这个概念还有很长的路要走。
无论如何,这是一个超级广泛的概述,上面的代码都没有经过测试,但它只是让你了解你的问题所涉及的大范围。查看此guide了解一些OOP知识。
答案 1 :(得分:2)
有许多文章解释了OOP和其他编程范例之间的区别。
OOP vs Functional Programming vs Procedural
尝试在网上搜索“oop和程序编程之间的区别”,“oop和函数式编程之间的区别”等等。