1-面向对象的引入:
1-先找出相应的对象
2-把这些涉及的对象的关系进行组网 2-类/实例
1-类:
1-现实不存在--抽象的概念--人类--鸟类
2-一类具有相同特征的事物的统称!
2-类里面有
1-静态---属性(特征)
2-动态---方法(行为) 3-实例---也叫 对象
1-在这个类里面实际存在的个体
2-类是实例的抽象化概念
3-实例是类的具体实例化体现
4-实例化操作:
1-类里面的变量--属性
2-类里面的函数--方法
3-创建实例 t1 = Tiger() 5-静态属性和实例属性
1-静态属性:
1-也叫类属性
2-它属于整个类的
3-用法:1-类.属性 2-实例.属性
2-实例属性:
1-这个属性是 那个实例的,不属于整个类---其他实例不能共享
2-定义在 初始化方法 __init__ 里
3-一般在创建实例的时候就给定
4-只要创建实例--def __init__(self):初始化方法肯定会调用
5-self 只是代表词,并不是关键字--可以替换,但不建议替换!不能缺省
6-id(self)
7-实例化属性---只能 实例.属性
8- self 这个实例的本身
6-方法:
1-静态方法
1-属于整个类
2-类可以直接调用,不需要实例化 ----类.方法 / 实例.方法
3-用 @staticmethod 修饰 只能修饰紧跟的那一个
2-实例方法:
1-有self
2- 实例.方法 7-取随机数
from random import randint
randint(0,2)--取 0 1 2 闭区间 8-时间处理:
1- import time
time.time()---单位是s 秒 从1970算起 9-继承
1-继承关系可以是多个父类
2-重写--在父类跟子类之间的一个多态的体现!
3-在重写情况下,调用父类的方法
super(SouTiger,s1).roar()
super(子类类名,子类的实例名).roar()
4- __name 私有属性
见代码:
1.创建一个实例
class Tiger:
Typename = "tiger"#类属性
def __init__(self):#初始化方法---构造方法---(函数),初始化方法,只要你调用,就执行了。
print("执行了") #self是自身自己的意思
t1 = Tiger() #只要创建实例,初始化方法肯定会被执行
# 结果:执行了
2.创建一个实例:实例名=类名()
class Tiger:
Typename = "tiger" # 类属性
pass
print(Tiger.Typename)
t1 = Tiger() # 创建一个实例,类名()
print(t1.Typename) # Typename属于整个类的,实例当然也可以使用
结果: tiger
3.初始化方法 init
class Tiger:
Typename = "tiger"#类属性
def __init__(self):#初始化方法---构造方法---(函数)
print(self,"执行了")#self就是t1,self默认传给实例
pass #self是代言词,不是关键字,可以用其他字符代替,但是不建议换别的
t1 = Tiger()
print(t1)
#结果:
<__main__.Tiger object at 0x017318B0> 执行了
<__main__.Tiger object at 0x017318B0>
4.创建实例属性
1.def _ init _(self, weight)就像一个函数一样,这里的weight是必填
class Tiger:
Typename = "tiger" # 类属性
def __init__(self, weight): # weight 相当于形参,传给属性。初始化方法---构造方法---(函数)
self.weight = weight #把weight这个变量赋值给self.weight这个属性,
t1 = Tiger(100) # 这里的100传给变量里面的weight,
print(t1.weight)
#结果:100
2.既然是函数,形参也可以缺省,实例就不要用传
class Tiger:
Typename = "tiger" # 类属性
def __init__(self, weight=200): # weight 相当于形参,且是缺省。传给属性。初始化方法---构造方法---(函数)
self.weight = weight #把weight这个变量赋值给self.weight这个属性,
t1 = Tiger() # 这里的不传的话,就是默认值200
t2 = Tiger(300) # 这里的传的话,就按传的值算,函数的缺省参数的知识
print(t1.weight)
print(t2.weight)
#结果:
200
300
5.类属性和实例属性
class Tiger:
Typename = "tiger" # 类属性
def __init__(self, weight=200): # weight 相当于形参,传给属性。初始化方法---构造方法---(函数)
self.weight = weight #把weight这个变量赋值给self.weight这个属性,
t1 = Tiger() # 这里的100传给变量里面的weight,
print(t1.weight) #实例调实例属性当然可以
print(t1.Typename) #实例调类属性当然可以
print(Tiger.weight) #类调实例属性当然报错
结果:
200
tiger
报错