python3-对象&类

对象

编程中万物皆对象,一个球、一个文具盒、一个人等等都可以称作为对象。可以理解为对象就是类的一个实例

类=属性+方法

属性是信息、方法是动作

定义类:使用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
原文地址:https://www.cnblogs.com/python-cat/p/12263542.html