• Python基础之初识类和对象


      我们在前面学习了解了面向过程编程,接下来我们一起来学习一下面向对象编程。其实不管是面向过程,还是面向对

    象,说白了就是一种编程方式而已。既然是面向对象编程,顾名思义,此编程方式的落地需要使用 “类” 和 “对象” 来实

    现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。

      基本概念:

      类就是一个模板,模板里可以包含多个函数,函数里实现一些功能

      对象则是根据模板创建的实例,通过实例对象可以执行类中的函数

      如何创建一个类:

      1、class是关键字,表示类

      2、创建对象,类名称后加括号即可

      如何使用类:

      一、实例化:

    #创建了一个名为people的类
    class people:
        gender = "male" #共有的特征
        def print_name(self):
            print("print_name-----> %s"%self)
    x = int(6) #int一个值,赋值给x
    print(x) #打印输出x的值
    obj = people() #people加括号会返回一个值,并赋值给obj,这就实例化
    print(obj) #打印输出obj的值
    -------------输出结果-------------------
    6 #x的值
    <__main__.people object at 0x00000000028C9C88> #得到的就是一个对象
    

      二、引用类的特征(类的变量)和技能(类的函数)

    #创建了一个名为people的类
    class people:
        gender = "male"
        def print_name(self):
            print("print_name-----> %s"%self)
    print(people.gender) #类名.变量名,打印这个类的共有特征,性别
    print(people.print_name) #类名.函数名,打印这个函数的返回值
    people.print_name("michael") #类名.函数名加括号调用函数并传了一个参数
    -----------------------输出结果------------------------
    male #共有特征是男
    <function people.print_name at 0x00000000026DB950> #返回值的内存地址
    print_name-----> michael #函数运行结果
    

      如何使用实例:

    #创建了一个名为people的类
    class people:
        gender = "male"
        def __init__(self,nickname):
            self.nick = nickname
        def print_name(self,age):
            print("%s's age is %s"%(self.nick,age))
    p1 = people("michael") #类名加括号里传参数调用会返回一个值,赋值给p1得到一个具体的对象
    p2 = people("jack") #类名加括号里传参数调用会返回一个值,赋值给p2得到一个具体的对象
    print(p1.nick) #打印对象p1的名字
    print(p2.nick) #打印对象p2的名字
    print(p1.gender) #打印所有对象共有的特征,性别
    print(p2.gender) #打印所有对象共有的特征,性别
    print(p1.print_name) #打印p1的绑定方法的返回值
    print(people.print_name) #打印 类名.函数名 的返回值
    p1.print_name(18) #self=p1就是p1自己本身的值传给位置参数self
    people.print_name(p2,23) #这个结果同上是一样的,只是在位置参数那直接传的p1
    -----------------------------输出结果---------------------------------------
    michael #p1.nick的名字
    jack #p2.nick的名字
    male #共有特征,男
    male #共有特征,男
    <bound method people.print_name of <__main__.people object at 0x0000000002929E10>> #实例化对象的绑定方法的返回值的内存地址
    <function people.print_name at 0x000000000292B9D8> #类名.函数名的返回值的内存地址
    michael's age is 18 #绑定方法传参的执行结果
    jack's age is 23 #类名.函数名 直接传参执行的结果
    

      总结:

      类:

      1、实例化;

      2、引用名字(类名.变量名,类名.函数名)。

      实例:

      引用名字(实例名.类的变量,实例名.绑定方法,实例名.实例自己的变量名)。

       其他:

      1、类对变量的:增、删、改、查。

    #创建了一个名为people的类
    class people:
        gender = "male"
        marital_status = "bachelordom"
        def __init__(self,nickname):
            self.nick = nickname
        def print_name(self,age):
            print("%s's age is %s"%(self.nick,age))
    people.interest = "python" #类people中共有特征,增加爱好
    print("共同爱好:",people.interest) #将结果输出打印
    people.marital_status = "married" #经过不断的努力学习Python后,都成功脱单,修改婚姻状态
    print("修改后的婚姻状况:",people.marital_status) #将结果输出打印
    print("性别:",people.gender) #查看类people的共有特征,性别
    del people.marital_status #删除婚姻状况变量名
    print(people.marital_status) #查看删除结果,报错说明删除成功
    ---------------------------输出结果------------------------------------
    共同爱好: python
    修改后的婚姻状况: married
    性别: male
    Traceback (most recent call last):
      File "F:/Michael/day26/类和对象.py", line 79, in <module>
        print(people.marital_status) #查看删除结果,报错说明删除成功
    AttributeError: type object 'people' has no attribute 'marital_status'
    

      2、实例化,对对象对应的变量的:增、删、改、查。

    #创建了一个名为people的类
    class people:
        gender = "male"
        marital_status = "bachelordom"
        def __init__(self,nickname):
            self.nick = nickname
        def print_name(self,age):
            print("%s's age is %s"%(self.nick,age))
    p1 = people("michael") #类名加括号里传参数调用会返回一个值,赋值给p1得到一个具体的对象
    p1.interest = "basketball" #为对象p1增加爱好,篮球
    print("增加的爱好:",p1.interest) #结果输出打印
    p1.marital_status = "married" #经过不断的努力学习Python后,都成功脱单,修改婚姻状态
    print("修改后的婚姻状况:",p1.marital_status) #结果输出打印
    print("查看p1的名字:",p1.nick) #查看p1的名字
    del p1.marital_status #删除p1婚姻状况
    print("原婚姻状态:",p1.marital_status) #查看删除结果,未修改原状态则删除成功
    -----------------------------输出结果-------------------------------------
    增加的爱好: basketball
    修改后的婚姻状况: married
    查看p1的名字: michael
    原婚姻状态: bachelordom
    

      

  • 相关阅读:
    jquery实现 图片延迟加载
    JSON在PHP中的应用
    【SAS NOTES】proc corr 检验变量相关性
    【SAS NOTES】proc freq 检验两分类变量
    【sas notes】proc sgplot拟合曲线
    【sas notes】proc sgplot折线图
    【sas notes】proc sgplot
    【SAS NOTES】proc reg 单变量线性回归
    【SAS NOTES】proc sgplot散点图
    【sas notes】sas9.2安装
  • 原文地址:https://www.cnblogs.com/Michael--chen/p/6710625.html
Copyright © 2020-2023  润新知