1.类的三要素
2.类的内置函数
(1)dir(函数名) 可以得到含指数中的内置方法或属性
3.定义类和对象
class Text:
def 方法1(self):
pass
def 方法2(self):
pass
对象变量=类名()
4.对象名.属性名=内容 可以增加属性(在类外面定义属性不推荐)
class Cat:
def eat(self):
print(%s爱吃鱼%self.name)
Tom=Cat()
Tom.name="Tom"
Tom.eat()
5.初始化方法
(1)(定义类的属性 def __ init__(self))
class Cat:
# 初始化属性
def __init__(self):
self.name = "Tom"
self.gender = True
tom = Cat()
如果想属性值不被限死就用形参
class Cat:
# 初始化属性
def __init__(self, new_name):
self.name = new_name
self.gender = True
tom = Cat("Tom")
(2)初始化方法(__ del __(self))
class Cat:
# 初始化属性
def __init__(self, new_name):
self.name = new_name
print("%s来了" % self.name)
def __del__(self):
print("%s走了" % self.name)
tom = Cat("Tom")
del tom
(3)初始化方法(__ str __(self))
class Cat:
# 初始化属性
def __init__(self, new_name):
self.name = new_name
print("%s来了" % self.name)
def __del__(self):
print("%s走了" % self.name)
def __str__(self):
#一定要返回一个字符串
return "我是%s小猫" % self.name
tom = Cat("Tom")
print(tom)
输出结果
6.演练:枪对象
class Gun:
def __init__(self, module):
self.name = module
self.bullet_count = 0
def add_bullet(self, bullet):
self.bullet_count = bullet
def shot(self):
if self.bullet_count <=0:
print ("%s没有子弹了"%self.name)
else:
self.bullet_count -= 1
print("%s 突突突...[%d]" %(self.name, self.bullet_count))
ak47=Gun("AK47")
ak47.add_bullet(50)
ak47.shot()
运行结果
士兵对象:
class Gun:
def __init__(self, module):
self.name = module
self.bullet_count = 0
def add_bullet(self, bullet):
self.bullet_count = bullet
def shot(self):
if self.bullet_count <=0:
print ("%s没有子弹了"%self.name)
else:
self.bullet_count -= 1
print("%s 突突突...[%d]" %(self.name, self.bullet_count))
class Soldier:
def __init__(self, name):
self.name = name
#新兵没有枪
self.gun = None
def fire(self):
# 判断有没有枪
if self.gun == None:
print("%s没有枪" % self.name)
return
else:
print("%s冲啊"%self.name)
self.gun.add_bullet(50)
self.gun.shot()
ak47 = Gun("AK47")
xusanduo = Soldier("许三多")
xusanduo.gun = ak47
xusanduo.fire()
7.身份运算符is / is not 比较地址 == 比较值