目录
- 一.创建和使用类
- 二.使用类和实例
- 2.1给属性指定默认值
- 2.2修改属性的值
- 2.2.1直接修改属性的值
- 2.2.2通过方法修改属性的值
- 2.2.3通过方法对属性的值进行递增
- 三.继承
- 3.1子类的方法__init__()
- 3.2给子类定义属性和方法
- 3.3重写父类的方法
- 四.导入类
-
python是一门优秀的面向对象编程语言。面向对象编程语言的编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。
根据类来创建的对象称为实例化。
一.创建和使用类
类就用一个例子来进行讲解,讲解以注释的形式添加到代码中。
class Person:
"""描述人的行为信息"""
def __init__(self,name,age):
"""初始化属性name和age"""
self.name = name
self.age = age
def walk(self):
"""模拟模特收到命令时走路"""
print(f"{self.name} is now walking!")
"""下面是使用类"""
person = Person('Mayahei',20)
print(person.name)
print(person.age)
"""下面是调用类的方法,也就是def xxxx"""
person.walk()
运行结果:
二.使用类和实例
2.1给属性指定默认值
就是直接在属性那调用赋值语句即可。
class Person:
"""描述人的行为信息"""
def __init__(self,name,age):
"""初始化属性name和age"""
self.name = name
self.age = age
self.height = '100cm'
def walk(self):
"""模拟模特收到命令时走路"""
print(f"{self.name} is now walking!")
def print_height(self):
"""打印模特的身高"""
print(f"模特的身高为:{self.height}")
"""下面是使用类"""
person = Person('Mayahei',20)
"""下面是调用类的方法,也就是def xxxx"""
person.print_height()
运行结果:
2.2修改属性的值
修改属性值一共有三种方法,下面进行一一讲解。
2.2.1直接修改属性的值
直接修改属性值也就是赋值语句的应用,把实例和属性通过句点连接起来即可。
实例.属性值
以本文中的例子。
person.height = '200cm'
class Person:
"""描述人的行为信息"""
def __init__(self,name,age):
"""初始化属性name和age"""
self.name = name
self.age = age
self.height = '100cm'
def walk(self):
"""模拟模特收到命令时走路"""
print(f"{self.name} is now walking!")
def print_height(self):
"""打印模特的身高"""
print(f"模特的身高为:{self.height}")
"""下面是使用类"""
person = Person('Mayahei',20)
"""下面是调用类的方法,也就是def xxxx"""
person.height = '200cm'
person.print_height()
运行结果:
2.2.2通过方法修改属性的值
这个方法的本质呢还是赋值语句,不过赋值语句封装在方法中,看下例:
def update_height(self,value):
"""更新属性值"""
self.height = value
class Person:
"""描述人的行为信息"""
def __init__(self,name,age):
"""初始化属性name和age"""
self.name = name
self.age = age
self.height = '100cm'
def print_height(self):
"""打印模特的身高"""
print(f"模特的身高为:{self.height}")
def update_height(self,value):
"""更新属性值"""
self.height = value
"""下面是使用类"""
person = Person('Mayahei',20)
"""下面是调用类的方法,也就是def xxxx"""
person.update_height('300cm')
person.print_height()
运行结果:
2.2.3通过方法对属性的值进行递增
这个其实就是通过方法修改属性值的一个延伸,也就是定义方法中的xxx+=number
的应用。
def update_height(self,value):
"""更新属性值"""
self.height += value
class Person:
"""描述人的行为信息"""
def __init__(self,name,age):
"""初始化属性name和age"""
self.name = name
self.age = age
self.height = 100
def print_height(self):
"""打印模特的身高"""
print(f"模特的身高为:{self.height}cm")
def update_height(self,value):
"""更新属性值"""
self.height += value
"""下面是使用类"""
person = Person('Mayahei',20)
"""下面是调用类的方法,也就是def xxxx"""
person.update_height(300)
person.print_height()
运行结果:
三.继承
有前端基础的同学对这个继承应该没什么难以理解的,不过大家可以仔细看,多看多敲代码没什么难的。
编写类时,不需要重新定义,可以在已有类的基础上添加属性和方法。
3.1子类的方法__init__()
- 父类和子类必须在同一个.py文件中
- 父类必须在子类的前面
- 定义子类时必须在括号内写入父类的名称
- 子类方法__init__()接受父类实例所需的信息
- 调用super()函数,进而使用父类中的方法
代码的注释中一一标明:
class Person:
"""描述人的行为信息"""
def __init__(self,name,age):
"""初始化属性name和age"""
self.name = name
self.age = age
self.height = 100
def print_height(self):
"""打印模特的身高"""
print(f"模特的身高为:{self.height}cm")
class New_Person(Person):
"""定义一个Person子类,打印体重"""
def __init__(self,name,age):
super().__init__(name,age)
"""下面是使用类"""
new_person = New_Person('Mayahei',20)
print(f"模特的名字是:{new_person.name}")
"""下面是调用类的方法,也就是def xxxx"""
new_person.print_height()
运行结果:
3.2给子类定义属性和方法
也就是赋值语句的应用:
"""给子类定义属性"""
self.weight = 100
"""给子类定义方法"""
def print_weight(self):
"""打印体重"""
print(f"模特的体重为:{self.weight}kg!")
class Person:
"""描述人的行为信息"""
def __init__(self,name,age):
"""初始化属性name和age"""
self.name = name
self.age = age
self.height = 100
def print_height(self):
"""打印模特的身高"""
print(f"模特的身高为:{self.height}cm")
class New_Person(Person):
"""定义一个Person子类,打印体重"""
def __init__(self,name,age):
super().__init__(name,age)
"""给子类定义属性"""
self.weight = 100
"""给子类定义方法"""
def print_weight(self):
"""打印体重"""
print(f"模特的体重为:{self.weight}kg!")
"""下面是使用类"""
new_person = New_Person('Mayahei',20)
"""下面是调用类的方法,也就是def xxxx"""
new_person.print_weight()
运行结果:
3.3重写父类的方法
就是一个优先级的问题,在子类中创建一个和父类一样的方法,调用这个方法是,调用的是子类的方法。
运行结果:
四.导入类
可以类比导入函数学习。
首先定义一个模块,里面专门存放类,如下图所示:
4.1语法–1:
from 模块名 import 类名
以我的为例:
- 导入单个类:
from class_0 import New_Person
- 导入多个类:
from class_0 import New_Person, Person
- 导入所有类:
from class_0 import *
4.2语法–2
语法:
import 模块名
eg:
import class_0
"""下面是使用类"""
new_person = class_0.New_Person('Mayahei',20)
new_person.print_height()
运行结果:
ps:如果需要使用别名在导入末尾加上as就行
eg:
from class_0 import New_Person as np
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)