zoukankan      html  css  js  c++  java
  • 面向对象

    面相对象

    昨天介绍了什么是对象和类

    对象就是特征和技能的结合体

    类就是一系列相似对象的特征和技能的结合体

    昨天我们只讲解了类的定义阶段 在定义阶段会立刻执行函数体内的代码,然后将产生的名字存放在类的名称空间

    class OldboyStudent:
        school='Oldboy'
        def learn(self):
            print('learn...')

    今天详细介绍了对象和类的调用阶段

    对象的定义:

    每个对象都有它相似的特征 也有它不一样的地方 如 名字 年龄等个人信息 怎样可以在类的调用阶段 区分出拥有一些相似特征和技能的对象  我们就要用到__init__方法具体如下

        def __init__(self,name,age):
            self.name=name
            self.age=age
    class OldboyStudent:
        school='Oldboy'
        def __init__(self,name,age):
            self.name=name
            self.age=age
    
        def learn(self):
            print('learn...')

    调用类的时候触发执行

    调用阶段会发生的三件事:

    1.首先产生一个空对象

    2.会自动触发类内部的__init__函数

    3.然后将产声的空对象连同括号内的参数一同传给___init__

    class OldboyStudent:
        school='Oldboy'
        def __init__(self,name,age):
            self.name=name
            self.age=age
    
        def learn(self):
            print('learn...')
    ojb=OldboyStudent('egon',18)
    print(ojb.name)

    调用类--->产生对象,调用类的过程也称为类的实例化

    类的数据属性:是给对象用的,而且直接共享给所有对象用,内存地址都一样

    class OldboyStudent:
        school='Oldboy'
        x=1
        def __init__(self,name,age):
            self.name=name
            self.age=age
    
        def learn(self):
            print('learn...')
    ojb=OldboyStudent('egon',18)
    print(id(ojb.x))
    print(id(OldboyStudent.x))
    1699114464
    1699114464

    类的函数属性:也是给对象用的,绑定到不同的对象就是不同的绑定方法,内存地址都不一样 但是指向相同的功能

    class OldboyStudent:
        school='Oldboy'
        x=1
        def __init__(self,name,age):
            self.name=name
            self.age=age
    
        def learn(self):
            print('learn...')
    obj=OldboyStudent('egon',18)
    obj1=OldboyStudent('alex',20)
    print(obj)
    print(obj1)
    <__main__.OldboyStudent object at 0x000002290EBA8F60>
    <__main__.OldboyStudent object at 0x000002290EBA8FD0>

    绑定方法的特殊之处:

    1.绑定给谁就应该谁来调用

    2.谁来调用就会把谁当作第一参数传入

    一切皆对象:在python3中统一了类型与类的概念,类即类型

    class OldboyStudent:
        school='Oldboy'
        x=1
        def __init__(self,name,age):
            self.name=name
            self.age=age
    
        def learn(self):
            print('learn...')
    print(OldboyStudent)
    l=[1,2,3]
    print(type(l))
    <class '__main__.OldboyStudent'>
    <class 'list'>
  • 相关阅读:
    Ubuntu 12.04 gedit编辑器 中文乱码
    ubuntu设置vim语法高亮显示和自动缩进
    Linux学习小结(转)
    指向常量的指针和常量指针
    Android之EditText
    android之TextView
    Android存储机制之Preference
    android实现可拖动按钮
    用turtle画图
    torchvision里densenet代码分析
  • 原文地址:https://www.cnblogs.com/yftzw/p/8796902.html
Copyright © 2011-2022 走看看