Python类理解

2024-04-19 10:39:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有使用类和不使用类的类型代码,但我找不到为什么类是有用。两者都有用给我一样的输出。请帮助 这是代码

(一)

class Hero:
    def __init__(self,name,health,p,s):
        self.name=name
        self.health=health
        self.p=int(p)
        self.a=int(s)
        food=vars()
        print(self.name,self.health)
        self.eat()
        print(self.health)
    def eat(self):
        print('choose a or b')
        food=input('>')
        if food == 'a':
            self.health -= self.p
        elif food == 'b':
            self.health += self.a
        else:
            print('choose one among a and b')


Hero('Bob',100,10,5)
Hero('Ham',500,60,10)

(二)

def eat(health,p,a):
    print('choose a or b')
    food=input('>')
    if food == 'a':
        health -= int(p)
    elif food == 'b':
        health += int(a)
    else:
        print('choose one among a and b')
    return health
def Hero(name,health,p,a):
    print(name,health)
    health = eat(int(health),p,a)
    print(health)
Hero('Bob',100,10,5)
Hero('Ham',500,60,10)

有人请帮忙。你知道吗


Tags: or代码nameselfinputiffooddef
2条回答

类是面向对象编程(OOP)的核心,OOP是一种编程范式(编写程序的“方式”),而过程编程(PP)是您在第二段代码中使用的范式。你知道吗

从根本上说,它们都有相同的能力。在OOP中你不能做什么,但是你可以在PP中做,反之亦然。但是,OOP提供了一些方便的快捷方式,使代码更易于编写和使用:

  • 封装-可以让对象包含一些表示其内在属性的数据和对这些对象进行操作的方法,但可以隐藏所有这些内部构件,并公开对用户实现对象范围有用的内容(免责声明-这可能有点枯燥,给它一些时间,想想它为什么有用;另外,python并不是最好的语言来理解这一点)

  • 抽象-对象的用户不需要知道对象的内部结构。当你开车的时候,想想现实世界。你需要知道如何使用控制装置(如方向盘、制动器),但你不一定需要知道发动机是如何工作的-汽车从驾驶员那里提取发动机的细节。您可以对类执行类似的操作

你也有方法来表示对象之间的关系和“窃取”他们行为的一部分。例如,可以对猫是动物这一事实进行建模,并具有动物的基本属性(例如,活动、移动),以及使其成为猫的某些特定属性。你知道吗

所有这些都被证明对编写大型软件非常有帮助,从而使OOP成为应用最广泛的编程范式之一。这并不意味着同样的功能不能通过PP实现,或者OOP提供的一些特性不能在PP中模拟,只是更麻烦而已。你知道吗

Python是一种非常通用的语言。它允许函数式和面向对象编程。Java或Ruby迫使程序员进入OO世界,而C对OO不是很友好。你知道吗

也就是说,OO范式就是要有对象和方法可以作用于这些对象,而在OO范式上,你有多态性,允许对某些对象类进行专门化。这个范例在功能级别上是相关的(在开始任何编码之前),并且可以用任何语言实现,包括C和汇编,如果它与问题相关的话。你知道吗

如果你的函数分析仅仅停留在一个过程树上,那么OO就没有什么意义了。例如,为了实现Eratosthenes的筛子,或者解决八皇后难题(如果你不知道的话,可以在维基百科上搜索),OO没有什么价值,Java实现可能只使用一个类,因为不需要更多的东西。你知道吗

另一方面,如果您的分析发现对象之间有许多关系,那么OO将是一个自然的工具。你知道吗

相关问题 更多 >