ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

day30

2019-10-09 18:57:39  阅读:249  来源: 互联网

标签:__ stu1 对象 self day30 print OldboyStudent


目录

面向对象编程

核心是对象二字,对象是特征与技能的结合体

优点:可扩展性强

缺点:编程的复杂度要高于面向过程

对象是特征与技能的结合体,类是一系列对象相同的特征与技能的结合体

如何定义类:

先定义类,后调用类创造对象

定义类的语法:

class 类名:
    对象相同的特征
    对象相同的技能
    
# class:用来定义类的,class后跟的是类名
# 类名:类的名字,用来创造对象的。
# 注意:类名必须要准寻驼峰命名法,python在定义变量与函数时不推荐使用,但在定义类时推荐使用

在定义类发生的事情:

  1. 类在定义时,会发生一个空的名称空间。

  2. 会把类内部所有名字,扔进类的名称空间。

    注意:类在定义阶段就已经产生好了名称空间,执行python文件时会执行类内部的代码

类的操作

# 学生类
class OldboyStudent:
    # 特征
    school = 'oldboy'
    print('tank is handsome...')

    # 技能
    def learn(self):
        print('learn python...')

    def choose_course(self):  # self = None
        print('choose_course ....')

print(OldboyStudent.school) # oldboy

OldboyStudent.school = 'oldgirl'
print(OldboyStudent.school)

# print(OldboyStudent.address) # 报错,特征也称之为属性
OldboyStudent.address = '上海'
print(OldboyStudent.address)

del OldboyStudent.address
print(OldboyStudent.address)

对象

对象是特征与技能的结合体

如何产生对象:

'''
语法:
    类名 + () 调用类产生的对象
'''

名称空间的产生:

对象的名称空间,在调用类时产生

在类内部定义__init__函数

为对象初始化某些属性。

会在调用类时,自动触发该函数

class OldboyStudent:
    # 若__init__中有self以外的参数,调用类时必须在括号内传入参数。
    def __init__(self,x,y,z): # self-->就是对象本身 
        # print(self, x, y, z)
        # print('此处时__init__。。。。')
        # 给对象添加特征的方式二:
        self.name = x
        self.age = y
        self.sex = z

    # 特征
    school = 'oldboy'
    # print('tank is handsome...')

    # 技能
    def learn(self):
        print('learn python...')

    def choose_course(self):  # self = None
        print('choose_course ....')


stu1 = OldboyStudent('志贵', 17, 'female')  # OldboyStudent()---> 学生对象
# 给对象添加属性的方式一:
# print(stu1.name)
# stu1.name = '高峰峰'
# stu1.age = 93
# stu1.sex = 'female'
# print(stu1.name, stu1.age, stu1.sex)

调用类发生的事情

  1. 首先会产生一个空的对象,就是产生“对象的名称空间”

  2. 会自动触发__init__

  3. 会把对象自身以及括号内的参数一并传给__init__函数

    总结:调用类会产生一个对象,调用类的过程叫做类的实例化,产生的对象称之为类的一个实例

查看类和对象的名称空间

# 查看类的名称空间
print(OldboyStudent.__dict__)

# 查看对象的名称空间
# print(stu1.__dict__)
print(stu1.name,stu1.school)

对象与类的查找顺序

  1. 对象.属性 ,若对象本身有,则优先查找对象自己的。
  2. 若对象本身没有,则去类里面找,若类没有,则报错

对象的绑定方法

类内部的函数:

主要是给对象用的:

  1. 由类来调用类内部的函数,该函数只是一个普通的函数,

    普通函数需要激光割参数就得传入几个参数

  2. 由对象来调用称之为对象的绑定方法,

    不同的对象调用该绑定方法,则会将不同的对象传入该绑定方法中

重点:对象的绑定方法,是有对象来调用的,

特殊之处就是把对象当做第一个参数传入该方法中

在python中一切皆为对象

标签:__,stu1,对象,self,day30,print,OldboyStudent
来源: https://www.cnblogs.com/Isayama/p/11643629.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有