Python程序设计入门(5)类的使用简介
一、什么是类?
类是面向对象编程(Object Oriented Programming,OOP)中的一种概念,是对一组对象的共同特征进行抽象形成的模板或者蓝图。类可以看做是对具体对象的抽象,它提供了一个封装数据和行为的模板,可以通过实例化为一个具体的对象。
举个例子,我们可以把一个人看做是一个对象,而人的属性和方法可以放在类的定义中,通过实例化这个类,就能创建具体的人对象,并调用他的属性和方法。
二、类的定义
class MyClass:
pass
- class表示定义类的关键字
- MyClass是类的名字,按照Python通用的命名规范,类名应该首字母大写,后面的单词首字母也应该大写
- 冒号后面的pass表示类的定义为空
三、类的属性和方法
类的属性是指这个类的所有对象都有的五花八门的特征和数据。类的方法是类的对象可以进行的操作。
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def say_hi(self):
print("Hi, my name is", self.name)
person = Person("小明", 24, "男")
print(person.name) # 输出:小明
person.say_hi() # 输出:Hi, my name is 小明
上面这个例子定义了一个Person类,Person类有三个属性,name、age、gender,它们通过构造函数(也就是__init__
方法)进行初始化,并且有一个say_hi方法,表示Person对象可以打招呼。我们创建的person对象,可以通过.
符号访问它的属性和方法。
四、继承和多态
继承是面向对象编程中的一种重要的机制,它通常被用来重用代码。一个类可以继承另一个类的属性和方法,并且可以新增和修改属性和方法,称为派生类,被继承的类称为基类或父类。
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def make_sound(self):
pass
class Dog(Animal):
def __init__(self, name, age):
super().__init__(name, age)
def make_sound(self):
print("Wangwang")
class Cat(Animal):
def __init__(self, name, age):
super().__init__(name, age)
def make_sound(self):
print("Miaomiao")
dog = Dog("旺财", 3)
cat = Cat("汤姆", 1)
dog.make_sound() # 输出:Wangwang
cat.make_sound() # 输出:Miaomiao
上面这个例子中,Animal是一个基类,它有两个属性,name和age,还有一个make_sound的方法,这个方法没有具体实现,留给派生类进行实现。Dog和Cat都是Animal的派生类,它们继承了Animal类的属性和方法,并且重写了make_sound方法,实现了自己的叫声。
这个例子中还有一个重要的概念——多态。多态是指在继承关系中,父类的引用变量可以指向子类的对象,调用的方法会根据实际对象的类型而不是引用变量的类型而发生变化。
五、注意事项
- 类名应该符合命名规范,首字母应该大写,后面的单词首字母也应该大写。
- 类的方法第一个参数必须是self,并在方法中使用它来引用这个实例本身。
- 类的属性可以直接通过
.
符号访问和修改。 - 使用继承创建类时,应该注意避免继承太多层次,以免不必要的复杂性和滥用继承导致的设计问题。
六、示例
以下是一个简单的示例,声明了一个MyRange类,用来产生连续的自然数。
class MyRange:
def __init__(self, start, end):
self.current = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.current < self.end:
result = self.current
self.current += 1
return result
else:
raise StopIteration
for i in MyRange(0, 5):
print(i)
# 输出:0 1 2 3 4
这个示例中,MyRange类实现了一个迭代器,__iter__
和__next__
方法分别实现了迭代器的规范,for i in MyRange(0, 5):
表示使用自定义的迭代器遍历MyRange类,输出了0~4的自然数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python程序设计入门(5)类的使用简介 - Python技术站