zoukankan      html  css  js  c++  java
  • 面向对象【林老师版】:__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]

  • 相关阅读:
    欧几里得方程 模幂运算 模乘运算 蒙哥马利模乘 素数测试
    HLG 1058workflow解题报告
    poj 3264Balanced Lineup解题报告
    JavaScript之HTMLCollection接口
    随记2(IE下调试Javascript)
    抽象类和接口
    JavaScript之字符串处理函数
    随记1
    多态
    自动内存管理
  • 原文地址:https://www.cnblogs.com/luoahong/p/9915402.html
Copyright © 2011-2022 走看看