技术始终要发展。什么是类以及它们从哪里来的呢?
1. 语句:
在计算机科学的最早期,程序员只写了命令。
2. 函数:
语句可重复使用的一个集合,有助于结构化代码,它提高了代码的可读性。
3. 类:
Classes are used to 类是用于创建函数和变量的对象。具有函数和变量。字符串就是一个对象的例子:一个字符串:book 具有函数 book.replace()和 book.lowercase()。This style is often called object oriented programming.这种风格通常被称为面向对象的编程。
Python 类
我们可以在 Python 中创建虚拟对象。虚拟对象可以包含变量和方法。一个程序从类创建可以具有许多不同的类型。如下示例:
class User: name = "" def __init__(self, name): self.name = name def sayHello(self): print "Hello, my name is " + self.name # create virtual objects james = User("James") david = User("David") eric = User("Eric") # call methods owned by virtual objects james.sayHello() david.sayHello()
运行该程序。在这段代码中,我们有3个虚拟对象:james, david 和 eric。每个对象都是 User 类的实例。
在这个类中,我们定义 sayHello()方法,这就是为什么我们可以在每个对象中调用它。__init __()方法作为构造函数调用在创建对象时它总是最先被调用。 由类所拥有的变量,在这里是“name”。这些变量有时也被叫作:类属性。
练习:
- 加入 eric.sayHello()方法并运行
- 更改 sayHello()调用的顺序和数量
- 添加一个方法 sayBye()显示 “Goodbye”
- 更改 User(“James”) 内部文本,并看看会发生什么
- 创建新的虚拟对象:Brian, Tamara 和 Abbey,并让他们打个招呼
让我们继续,可以创建类的方法以更新对象的内部变量。这看起来可能有点不太明白,下面会用一个例子来说明。
类变量
我们定义一个类CoffeeMachine其中的虚拟对象保存咖啡豆的量和水的量。两者都定义为一个数字(整数)。然后,我们可以定义方法来添加或删除豆。
def addBean(self): self.bean = self.bean + 1 def removeBean(self): self.bean = self.bean - 1
我们对变量 water 做做同样设置。如下图所示:
class CoffeeMachine: name = "" beans = 0 water = 0 def __init__(self, name, beans, water): self.name = name self.beans = beans self.water = water def addBean(self): self.beans = self.beans + 1 def removeBean(self): self.beans = self.beans - 1 def addWater(self): self.water = self.water + 1 def removeWater(self): self.water = self.water - 1 def printState(self): print "Name = " + self.name print "Beans = " + str(self.beans) print "Water = " + str(self.water) pythonBean = CoffeeMachine("Python Bean", 83, 20) pythonBean.printState() print "" pythonBean.addBean() pythonBean.printState()
运行该程序。代码的顶端部分定义了我们所描述的类。下面的代码是用于创建虚拟对象。在这个例子中,我们有一个对象叫作: “pythonBean”. 然后我们在内部的方法将变量改变,因为我们在类中定义方法。输出结果如下:
Name = Python Bean Beans = 83 Water = 20 Name = Python Bean Beans = 84 Water = 20
练习:
- 调用方法 addBean() 多次
- 更改机器的名称
- 创建多个咖啡机
- 改变水量(别忘了打印)
- 创建一个类 telephone 以及虚拟对象Phone1 和 Phone2 修改电池的量。
如果遇到困难或有任何疑问,请随时发表评论。