zoukankan      html  css  js  c++  java
  • python的面向对象-实例(对象)的相关知识、实例化

    1、对象就是实例,什么是实例

    类运行的过程就是实例化的过程,实例化产生的结果就是产生了一个实例

    class的牛逼之处就是不用手动的return,他会加载完函数之后,自动return  __init__这个函数里面的字典,字典当中封装了数据属性

    函数属性就是属于类的

    2、实例化

    只要用类名加()的方式运行,(在类中这个运行叫实例化)首先会运行__init__这个函数

    class Chinese:#定义了Chinese这个类
        dang="当"#定义了一个数据属性dang
        def __init__(self,name,age,gender):
            print("我是初始化函数,我开始运行了")
            self.mingzi=name
            self.nainji=age
            self.xignbie=gender#这样写完之后会自动return
            print("我结束啦")
        def suiditutan():#定义了一个函数属性
            print("朝着墙上就是一口黄痰")
        def chadui(self):#又定义了一个函数属性
            print("%s 插到了前面" %self)
    p1=Chinese("北爷",33,"female")
    
    C:python35python3.exe D:/pyproject/day24/对象相关知识.py
    
    我是初始化函数,我开始运行了
    
    我结束啦

    实例化的过程就是运行__init__这个函数,从而生成一个字典,这个字典就是实例(对象)

    字典当中封装的是数据属性

    查看下p1这个实例的内容

    class Chinese:#定义了Chinese这个类
        dang=""#定义了一个数据属性dang
        def __init__(self,name,age,gender):
            print("我是初始化函数,我开始运行了")
            self.mingzi=name
            self.nainji=age
            self.xignbie=gender#这样写完之后会自动return
            print("我结束啦")
        def suiditutan():#定义了一个函数属性
            print("朝着墙上就是一口黄痰")
        def chadui(self):#又定义了一个函数属性
            print("%s 插到了前面" %self)
    p1=Chinese("北爷",33,"female")
    print(p1.__dict__)
    
    C:python35python3.exe D:/pyproject/day24/对象相关知识.py
    
    我是初始化函数,我开始运行了
    
    我结束啦
    
    {'nainji': 33, 'xignbie': 'female', 'mingzi': '北爷'

    注意:__init__里面不要有return   加了就会报错,class会自动帮你return

    3、实例属性可以访问到类属性

    class Chinese:#定义了Chinese这个类
        dang=""#定义了一个数据属性dang
        def __init__(self,name,age,gender):#self就是p1本身
            print("我是初始化函数,我开始运行了")
            self.mingzi=name#p1.mingzi=name
            self.nianji=age#p1.nainji=age
            self.xingbie=gender#这样写完之后会自动return
            print("我结束啦")
        def suiditutan():#定义了一个函数属性
            print("朝着墙上就是一口黄痰")
        def chadui(self):#又定义了一个函数属性
            print("%s 插到了前面" %self)
    p1=Chinese("北爷",33,"female")
    print(p1.__dict__)#字典里面只有数据属性
    print(p1.__dict__["nianji"])#用字典的方式取字典里面的value
    print(p1.__dict__["mingzi"])
    print(p1.nianji)#实例调用nianji
    print(p1.mingzi)#这是实例的数据属性
    # print(p1.mingzi222)#会报错,实例调用方法的时候会从__dict__里面找,找不到就报错了
    print(p1.dang)#用实例去调用类的数据属性,虽然__dict__里面没有,但是上一级有
    
    C:python35python3.exe D:/pyproject/day24/对象相关知识.py
    
    我是初始化函数,我开始运行了
    
    我结束啦
    
    {'nianji': 33, 'xingbie': 'female', 'mingzi': '北爷'}
    
    33
    
    北爷
    
    33
    
    北爷
    
    当

    实例在调用属性的时候,先找实例的属性字典里面,如果没有的话,就去类的属性字典里面找,类里面在没有的话就报错了

    4、类调用方法直接用类名加()

    class Chinese:#定义了Chinese这个类
        dang=""#定义了一个数据属性dang
        def __init__(self,name,age,gender):#self就是p1本身
            print("我是初始化函数,我开始运行了")
            self.mingzi=name#p1.mingzi=name
            self.nianji=age#p1.nainji=age
            self.xingbie=gender#这样写完之后会自动return
            print("我结束啦")
        def suiditutan():#定义了一个函数属性
            print("朝着墙上就是一口黄痰")
        def chadui(self):#又定义了一个函数属性
            print("%s 插到了前面" %self.mingzi)
    p1=Chinese("北爷",33,"female")
    Chinese.suiditutan()
    Chinese.chadui(p1)
    
    C:python35python3.exe D:/pyproject/day24/对象相关知识.py
    
    我是初始化函数,我开始运行了
    
    我结束啦
    
    朝着墙上就是一口黄痰
    
    北爷 插到了前面

    5、用实例调用方法

    class Chinese:#定义了Chinese这个类
        dang=""#定义了一个数据属性dang
        def __init__(self,name,age,gender):#self就是p1本身
            print("我是初始化函数,我开始运行了")
            self.mingzi=name#p1.mingzi=name
            self.nianji=age#p1.nainji=age
            self.xingbie=gender#这样写完之后会自动return
            print("我结束啦")
        def suiditutan(self):#定义了一个函数属性
            print("%s 朝着墙上就是一口黄痰" %self.mingzi)
        def chadui(self):#又定义了一个函数属性
            print("%s 插到了前面" %self.mingzi)
    p1=Chinese("北爷",33,"female")
    Chinese.suiditutan(p1)#类调用方法
    Chinese.chadui(p1)#类调用方法
    p1.chadui()#实例调用方法,会自动把p1传给self
    p1.suiditutan()#实例调用方法,会自动把p1传给self
    
    C:python35python3.exe D:/pyproject/day24/对象相关知识.py
    
    我是初始化函数,我开始运行了
    
    我结束啦
    
    北爷 朝着墙上就是一口黄痰
    
    北爷 插到了前面
    
    北爷 插到了前面
    
    北爷 朝着墙上就是一口黄痰

    6、再实例化一个p2  增加一个类的函数属性,用实例调用一下

    class Chinese:#定义了Chinese这个类
        dang=""#定义了一个数据属性dang
        def __init__(self,name,age,gender):#self就是p1本身
            self.mingzi=name#p1.mingzi=name
            self.nianji=age#p1.nainji=age
            self.xingbie=gender#这样写完之后会自动return
        def suiditutan(self):#定义了一个函数属性
            print("%s 朝着墙上就是一口黄痰" %self.mingzi)
        def chadui(self):#又定义了一个函数属性
            print("%s 插到了前面" %self.mingzi)
        def eatfood(self,food):
            print("%s 正在吃%s" %(self.mingzi,food))
    p1=Chinese("北爷",33,"female")
    p1.eatfood("黄痰")
    p2=Chinese("喵爷",28,"female")
    p2.suiditutan()#实例调用类的函数属性,会自动把p1传给self
    p2.eatfood("黄焖鸡米饭")#实例调用类的函数属性,会自动把p1传给self
    
    C:python35python3.exe D:/pyproject/day24/对象相关知识.py
    
    北爷 正在吃黄痰
    
    喵爷 朝着墙上就是一口黄痰
    
    喵爷 正在吃黄焖鸡米饭
  • 相关阅读:
    《全体育·瑜伽》
    PowerDesigner使用教程
    Android基础之——startActivityForResult启动界面并返回数据,上传头像
    数据仓库与数据挖掘的一些基本概念
    php实现求二进制中1的个数(右移、&、int32位)(n = n & (n
    批量发短信的平台浏览总结
    php资源集
    js进阶正则表达式5几个小实例(原样匹配的字符在正则中原样输出)(取反^)
    js进阶正则表达式方括号(方括号作用)(js正则是在双正斜杠之中:/[a-z]/g)
    js进阶正则表达式修饰符(i、g、m)(var reg2=/html/gi)
  • 原文地址:https://www.cnblogs.com/gouguoqilinux/p/9190496.html
Copyright © 2011-2022 走看看