day10:面向对象(类和对象:类的定义,类的属性)
一、类和对象
从今天开始我们学习面向对象,学习对象不提两个非常重要的概念:类和实例对象
问题一:什么是类?什么是实例对象?
类:是一类事物的抽象概念(模型),不是真的存在的。描绘了该类共同的特征和行为。
例如:船、车、飞机
实例对象:某类事物的具体个体,是该类事物的具体表现,它是真实存在的。
例如:“辽宁号”是一艘具体的船,“泰坦尼克号”也是
1.类的定义
关键字:class
(1)定义类的语法:
方式一:class类名
方式二:class类名(object)
注意:方式一、方式二定义类是一样的,没有任何区别,只是写法不一样。
(2)类名的命名规范:
1)遵循标识符的命名规范。
2)建议使用大驼峰命名法(每个单词的第一个字符大写)
例如:Hero Cat MyClass TestCase ReadFile
(3)案例
定义一个猫类
# 定义一个猫类
class Cat(object)
pass
# @time:2019/10/27 10:28
# @Author:coco
# @File:03类的定义.py
# @software:PyCharm
"""
class 类名:
pass
类命名规范:每个单词的第一个字母必须大写(大驼峰命名)
通过类创建对象:类名()
"""
class Cat:
pass
# 通过类来创建对象
kt = Cat()
print(kt)
class Myclass:
pass
m = Myclass()
print(m)
运行结果:
创建实例对象
语法:obj=类名
案例:
# 创建猫类的三个实例对象:kitty,coffee,jingel
Kitty = Cat()
Coffe = Cat()
Jingel = Cat()
对象的组成
2、类属性和实例属性
属性:定义在类中的变量()
(1)类属性
什么是类属性:这个类事物的共同牲
猫类的特性:四条腿、长尾巴、两只眼睛。。。
定义类的属性“
calss Cat (object)
leg = '四条腿'
tail = '长尾巴'
# @time:2019/10/27 10:28
# @Author:coco
# @File:03类的定义.py
# @software:PyCharm
"""
class 类名:
pass
类属性和实例属性:
类属性:这类事物所有这个属性,属性值都是一样的
直接在类里面定义的变量叫做类属性
实例属性:这类事物所有的对象都有这个属性,但是属性值是不一样的
对象.属性 = 属性值
"""
class Cat:
"""
定义一个猫类
"""
# 共同的特征(属性)
# 直接在类里面定义变量叫类属性:这类事物所有这个属性,属性值都是一样的
leg = '四条腿'
tail = '长尾巴'
hh= Cat()
kt = Cat()
dd = Cat()
# 定义实例属性
hh.age = 18
kt.age = 20
dd.age = 18
kt.name="凯蒂猫"
hh.name="灰灰"
dd.name="叮当猫"
# 获取属性值:对象.属性(不能通过类去获取实例属性)
print(kt.age)
print(hh.age)
# 类属性获取
# 通过对象可以获取类属性
print(kt.tail)
print(hh.tail)
# 通过类可以获取类属性
print('---------')
print(Cat.tail)
运行结果:
类属性的访问
1)类可以直接访问类属性
2)该类的实例对象也可以访问类属性
实例属性
实例属性:实例对象自己的属性
叮当猫的实例属性:
名字:叮当
年龄:200
黑猫警长的实例属性:
名字:黑猫
年龄:18
给对象添加实例属性
语法格式:对象。属性名=属性值
案例:
Jingle.name=‘叮当’
Jingle.age=18
实例属性的访问
实例属性只有该实例对象自己能访问
3.类方法和实例方法
方法:就是定义在类中的函数
(1)类方法(后面讲)
(2)实例方法
实例方法的定义:
1)实例方法是直接定义在类中
2)实例方法的第一个参数为self(必须要写)
3)案例:猫类的方法定义