对象
编程中万物皆对象,一个球、一个文具盒、一个人等等都可以称作为对象。可以理解为对象就是类的一个实例
类=属性+方法
属性是信息、方法是动作
定义类:使用class来定义类
#定义一个class类,可以使用函数指定属性和方法,然后对象实例化,通过对象来调用类中的方法
class Students:
#定义方法
def run(self):
print('I am running')
#定义属性(初始化属性)
def __init__(self,name,age):
self.name = name
self.age = age
stu1 = Students('ghd',30)
#执行动作
stu1.run()
#查看属性
print(stu1.name)
init函数:构造函数,每次实例化对象都会执行init函数,举例说明
class Students: #定义方法 def run(self): print('I am running') #定义属性(初始化属性) def __init__(self,name,age): self.name = name self.age = age print('我执行了') stu1 = Students('ghd',30) stu2 = Students('gym',30) #执行动作 stu1.run() #查看属性 print(stu1.name) #类可以指定一个大的范围,而对象是将类具体化
###########输出结果#######################
我执行了
我执行了
I am running
ghd
看到俩次“我执行了”,说明在每次生成对象的时候都会执行init函数中的内容
类变量和实例变量
class Students: #创建类 gender = "male" #创建类变量 height = 12 def __init__(self,name,age): #初始化属性 self.name = name self.age = age def learn(self): #添加方法 print("好好学习") print(self.name) print(self.gender) def run(self): print(self.gender,self.height,self.name) stu1 = Students('tom',12) #创建对象 print(stu1.gender) #打印类变量 stu1.gender = "ghd" #修改类变量 print(stu1.gender) #修改对象的值 stu1.name = "cat" print(stu1.name)
执行结果:
/Users/admin/work/day/base_jobs/bin/python /Users/admin/work/base_jobs/笨办法/练习/类-class.py male ghd cat #说明对象的name形参的值已修改
类的多态:类不一样,但是方法是一样的
#类的多态 #类可以指定一个大的范围,而对象是将类具体化 class Computer: def __init__(self,brand,price,color,size): self.brand = brand self.price = price self.color = color self.size = size def play(self): print('我可以玩游戏') def job(self): print('我可以办公') #直接输入对象结果会输出一个内存地址,如果想看到对象中值,就需要使用__str__函数 def __str__(self): return self.brand+str(self.price)+self.color+str(self.size) class Phones: def job(self): print('苹果手机也可以办公') c = Computer('thinkpad',6000,'red',16) c.job() p = Phones() p.job()
输出结果:
/Users/admin/work/day/base_jobs/bin/python /Users/admin/work/base_jobs/笨办法/练习/类-class.py 我可以办公 苹果手机也可以办公 进程已结束,退出代码0
类的继承
class Cat: def __init__(self,name,enjoy,weight): self.name = name self.enjoy = enjoy self.weight = weight def run(self): print('蹦蹦跳跳') def job(self): print("吃喝睡") class Bosi_cat(Cat): #将Cat作为父类 def setNewName(self,newname): self.newname = newname def run(self): print('跑跳') b = Bosi_cat('cat','鱼',1) #需要指定父类中的参数 b.job() #子类继承父类的所有方法 b.run() #如果子类和父类的方法一致,优先执行子类的方法(子类方法优先级高)
输出结果:
/Users/admin/work/day/base_jobs/bin/python /Users/admin/work/base_jobs/笨办法/练习/类-class.py 吃喝睡 跑跳 进程已结束,退出代码0