Python中的类

与Java一样,Python中也存在类的概念,使用几乎可以模拟任何东西。

一、创建和使用类

我们创建一个简单的学生类----它不表示特定的学生,它可以表示任何学生。对于学生,我们知道学生

拥有一个学号,这是没有重复的,学生有名字、年龄;我们还知道学生可以有学习、运动这些行为。

根据以上描述,我们创建学生类。

student.py

 1 class Student():
 2     """模拟学生"""
 3     def __init__(self,name,age):
 4         """初始化name 和 age 属性"""
 5         self.name = name
 6         self.age = age
 7     
 8     def study(self):
 9         """模拟学生学习"""
10         print(self.name.title() + " is studying.")
11         
12     def sport(self):
13         """模拟学生运动"""
14         print(self.name.title() + " is sports.")

解释:

  方法 __init__():类中的函数称为方法,方法等价于函数,叫法不同而已,此方法是一个特殊的方法,每当你根据Student类创建新实例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,意在避免Python默认方法与普通方法发生名称冲突。

  我们将方法__init__()定义包含三个形参:self、name、age。在这个方法的定义中形参self 必不可少,为何?因为Python在调用者方法创建实例时,将自动传入实参 self。每个与类相关联的方法都自动传递实参self,它是指向实例本身的引用,让实例能够访问类中的属性和方法。我们创建Student实例时,Python将调用此方法,我们将通过实参向Student() 传递名字和年龄;self会自动传递,因此我们不需要传递它。每当我们根据Student类创建实例时,都只需要给最后两个形参(name和age)提供值。

  第5、6行代码,定义的两个变量都有前缀self 。以self 为前缀的变量都可供类中所有的方法使用,我们还可以通过类的任何实例来访问这些变量。self.name = name 获取存储在形参name 中的值,并将其存储到变量name 中,然后该变量被关联到当前创建的实例。self.age = age 与此类似。

  Student类中还定义了其他两个方法:study和sport。由于这些方法不需要额外的信息,因此它们只有一个形参self。

二、根据类创建实例

  

 1 class Student():
 2     """模拟学生"""
 3     def __init__(self,name,age):
 4         """初始化name 和 age 属性"""
 5         self.name = name
 6         self.age = age
 7     
 8     def study(self):
 9         """模拟学生学习"""
10         print(self.name.title() + " is studying.")
11         
12     def sport(self):
13         """模拟学生运动"""
14         print(self.name.title() + " is sports.")
15   
16 stu = Student('joker',18)
17 print("stu's name is " + stu.name)
18 print("stu's age is " + str(stu.age))
19 stu.study()
20 stu.sport()

console:

解释:

  第16 行即创建Student实例,将姓名和年龄传入,并用变量stu接收这个实例,然后可用stu访问实例中的属性,如17、18行,然后我们也可以调用方法,如19、20行。

可以创建多个实例,用不同的变量名接收即可,如:

stu1 = Student('jack','19')
stu2 = Student('nacy',18)

访问其属性和调用方法与stu 类似。

  放弃这俩字,说起来简单,做起来就更简单了

  

原文地址:https://www.cnblogs.com/tizer/p/11006090.html