与可调用函数相比,使用类的主要优点是什么?

2024-05-16 04:57:01 发布

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

今天我想知道类比可调用函数有什么优点。我知道这似乎是个奇怪的问题,但我正在编写一个基于太空的游戏,我想制作一些能显示生命支持的东西(氧气、氮气) 基本上,我有这个功能:

oxygen = 100
nitrogen = 100
air = [oxygen, nitrogen]
print("You can use check(air) to see the quantities of n2 and o2 available.")
def check(variable):
    if variable == air:
    print("Your oxygen level is {0}% and your nitrogen level is {1}%.".format(oxygen, nitrogen))

因此,每当玩家键入check(air)时,他们就能看到船上氮和氧的含量。使用这个方法,我还可以通过扩展check()函数让他们看到其他函数。我想知道这样做是否比这样做更好:

^{pr2}$

就个人而言,我更喜欢这个函数,尽管我不知道该用哪个函数更好。我知道你会打字空气.氧气为了只查看氧含量,我可能可以使用check()函数单独打印类“bundle”,比如“air”…”

基本上。。。与我展示的代码这样的函数相比,使用类的真正优势是什么?为了我的目的,使用一个类或者一个函数,或者两者都用好吗?在


Tags: and函数ischeckairlevelvariable太空
2条回答

要打印氧气和氮气,您需要:

class Lifesupport(object):
    def __init__(self, oxygen, nitrogen):
        self.oxygen = oxygen
        self.nitrogen = nitrogen
    def __str__(self):
        return "Your air has {0}% oxygen and {1}% nitrogen".format(self.oxygen, self.nitrogen)

然后,当您想显示Lifesupport级别时,只需执行以下操作:

^{pr2}$

__str__方法重写类的默认__str__方法,因此当您执行print(air)操作时,它将打印自定义文本。在

至于类与方法,建议您使用类,特别是当您知道要扩展程序时,因为您可以创建一个类的多个实例,这些实例都具有可以相互独立修改的属性。下面是一个例子:

示例

class A:
    def __init__(self,num):
        self.val = num

a = A(4)
b = A(5)

>>> print(a.val)
4
>>> a.val = 6
>>> print(a.val)
6
>>> print(b.val)
5

类是实例工厂。您可以创建类customize的多个实例(也称为副本),并根据需要扩展它(通过继承和重载方法)。在

如果您想重用或定制已经编写好的函数,那么在类中使用它是一种方法。如果你还没有完成基本的课程编码,我建议你先复习一下基本的课程。一个简单的例子是

class Person:
    def __init__(self, name, job=None, pay=0):
        self.name = name
        self.job = job
        self.pay = pay

    def giveRaise(self, percent):
        self.pay = int(self.pay * (1 + percent))

class Manager(Person):
     def __init__(self, name, pay):            # Redefine constructor
            Person.__init__(self, name, 'mgr', pay) # Run original with 'mgr'
     def giveRaise(self, percent, bonus=.10):
            Person.giveRaise(self, percent + bonus)

我通过继承原始类和在Manager类中添加新信息来定制原始类init方法

相关问题 更多 >