• 面向对象【林老师版】:__init__定制自己独有的特征(三)


    本节内容

    1、是如何产生对象

    2、实例化的步骤

    3、类即类型

    一、是如何产生对象?

    __init__方法用来为对象定制对象自己独有的特征

    1、stu1=LuffyStudent()调用报错

    1、代码

    class LuffyStudent:
        school='luffycity'
    
        #            stu1, '王二丫', '女', 18
        def __init__(self,name,sex,age):
            self.Name=name
            self.Sex=sex
            self.Age=age
    
        def learn(self):
            print('is learning')
    
        def eat(self):
            print('is sleeping')
    
    
    #后产生对象
    stu1=LuffyStudent()
    

     2、输出

    Traceback (most recent call last):
      File "F:/s13/day07/4 __init__方法.py", line 23, in <module>
        stu1=LuffyStudent() 
    TypeError: __init__() missing 3 required positional arguments: 'name', 'sex', and 'age
    

    意思是么有找到'name', 'sex', and 'age参数

    2、stu1=LuffyStudent('王二丫','女',18)调用成功

    1、代码

    #__init__方法用来为对象定制对象自己独有的特征
    class LuffyStudent:
        school='luffycity'
    
        #            stu1, '王二丫', '女', 18
        def __init__(self,name,sex,age):
            self.Name=name
            self.Sex=sex
            self.Age=age
    
        def learn(self):
            print('is learning')
    
        def eat(self):
            print('is sleeping')
    
    #后产生对象
    stu1=LuffyStudent('王二丫','女',18) #LuffyStudent.__init__(stu1,'王二丫','女',18)
    print(stu1.__dict__)
    

    2、输出

    {'Sex': '女', 'Age': 18, 'Name': '王二丫'}

    二、__init__方法后,实例化的步骤

    1、先产生一个空对象stu1

    1、代码

    def __init__(self,name,sex,age):
            self.Name=name
            self.Sex=sex
            self.Age=age
    
            #stu1.Name='王二丫'
            #stu1.Sex='女'
            #stu1.Age=18
    stu1=LuffyStudent('王二丫','女',18) #LuffyStudent.__init__(stu1,'王二丫','女',18)
    print(LuffyStudent.__init__)

    2、输出

    <function LuffyStudent.__init__ at 0x0000000001101378>

    2、LuffyStudent.__init__(stu1,'王二丫','女',18)

    1、原理图

    2、源代码

    #后产生对象
    stu1=LuffyStudent('王二丫','女',18) #LuffyStudent.__init__(stu1,'王二丫','女',18)
    print(stu1.__dict__)

    3、输出

    {'Name': '王二丫', 'Sex': '女', 'Age': 18}

    三、类即类型

    python一切皆对象,在python3里统一类类与类型的概念

    1、类型list就是类list

    1、代码

    print(type([1,2]))
    print(list)
    

    2、输出

    <class 'list'>
    <class 'list'>
    

    2、实例化的到4个对象l1,l2,l3,l4

    >>> l1=list()
    >>> l2=list()
    >>> l3=list()
    >>> l4=list()
    

    3、三个对象都有绑定方法append,是相同的功能,但内存地址不同

    >>> l1.append
    <built-in method append of list object at 0x000000000227E348>
    >>> l2.append
    <built-in method append of list object at 0x000000000227C4C8>
    >>> l3.append
    <built-in method append of list object at 0x000000000227C508>
    >>> l4.append
    <built-in method append of list object at 0x000000000227C548>
    

    4、操作绑定方法l1.append(3),就是在往l1添加3,绝对不会将3添加到l2或l3

    >>> l1.append(3)
    >>> l1
    [3]
    >>> l2
    []
    >>> l3
    []
    >>> l4
    []
    
    

    5、调用类list.append(l3,111)等同于l3.append(111)

    >>> list.append(l3,111)
    >>> l3
    [111]

  • 相关阅读:
    docker相关
    多线程
    设计模式
    ftp下载乱码问题
    Windows无法启动SQL server 代理服务(服务器)错误1067:进程意外终止
    Struts2 if标签
    Java项目编译时经常会出现不编译,或者报一些假性错误
    ajaxSubmit 上传文件 提示下载json处理
    MySQL中优化sql语句查询常用的30种方法
    mybatis 中的where标签
  • 原文地址:https://www.cnblogs.com/luoahong/p/9915402.html
Copyright © 2020-2023  润新知