ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python学习-Day26

2022-04-07 00:00:19  阅读:201  来源: 互联网

标签:__ obj1 python self Day26 学习 对象 init print


目录

image

今日内容详细

编程思想

面向过程编程

将程序的执行流程化。即分步操作,在分步的过程中解决问题。

结构:自然的数据结构	
优势:适用于简单系统,容易理解
劣势:难以维护,后期增添功能

面向对象编程

定义好对象,为其编写功能。对象其实就是一个"容器" 将数据与功能整合到一起。抽象概念一切皆是对象。

结构:封装、继承、多态的数据结构	
优势:适用于大型复杂系统,用于需要对应对象的编程有明显的优势
劣势:难部分使用场景较为局限

image

类与对象

概念

对象:数据与功能的结合体
    
类:即类别、种类 相当于诸多对象公有的特征(数据、功能)
    存放 一群拥有相同功能和数据 的对象的 相同功能和数据 的容器

类其实也算对象(一切皆对象)

类与对象的创建

在代码编程中是先有类才能有对象

先定义类 后产生对象

# 学生类
class Student:
    # 学生类公共的数据
    school = '清华大学'
    # 学生类公共的功能
    def choose_course(self):
        print('学生选课功能')

"""类体代码无需调用就会执行 产生类的名称空间"""

语法结构

class 类名:
    类的体代码
1.class是定义类的关键字
2.类名类似于函数名 但是首字母推荐大写 用于区分
3.类体代码就是存放对象公共数据和功能的地方
    数据: 变量名 = 变量值
    功能: 函数

**因为其内部是一个字典数据类型,所以查看名称空间使用 _ _ dict _ _ **

# 查看名称空间的方法>>>: __dict__
print(类名.__dict__)  # 返回值是一个字典

# 获取类中的属性
print(类名.__dict__['变量名']) 
print(类名.__dict__['函数名'])

""" 类获取数据和功能有一个简便的方式>>>:句点符 """
print(类名.变量名)
print(类名.函数名)

如何产生对象

类名加括号

'''类名加括号就是在产生一个对象'''
# 接收名 = 类名()  产生一个空的名称空间
obj1 = Student()  
obj2 = Student()
print(obj1.__dict__, obj2.__dict__)  # {} {}


# 接受名.属性名(变量名或函数名)会获得它的功能或值,相当于对象
print(obj1.school)  # 清华大学
print(obj2.school)  # 清华大学
print(obj1.choose_course)  # bound method
print(obj2.choose_course)  # bound method


# 修改名字与值的对应关系
# 类名.属性 = '新的值'
print(obj1.school)  # 清华大学
print(obj2.school)  # 清华大学
Student.school = '北京大学'  # Student.__dict__['school'] = '北京大学'  
print(obj1.school)  # 北京大学
print(obj2.school)  # 北京大学

image

对象的实例化

'''
 __init__
      该方法就一个功能>>>:给对象添加独有的数据
'''

"""
类中的__init__方法会在类产生对象的时候自动执行
类产生对象的具体步骤
    1.先创建一个没有独有数据的空对象  {}
    2.将空对象和类括号内传入的数据一并交给__init__执行
        __init__的第一个参数就是对象本身
            __init__(obj,name,age,gender)
    3.将创建好的对象自动返回
给你提供这种方式能够减少代码的编写

ps:针对括号内第一个形参self其实就是一个普通的变量名而已
只不过该变量名将来专门接收对象的 所以给它起了个固定的名字叫self
"""
class 类名:
    def __init__(对象名, 属性1, 属性2, 属性3):
        '''该方法就一个功能>>>:给对象添加独有的数据'''
        self.属性1 = 属性1的对象
        self.属性2 = 属性2的对象
        self.属性3 = 属性3的对象


类中的__init__方法会在类产生对象的时候自动执行
类产生对象的具体步骤
	1.创建一个空的名称空间
	2.将空的名称空间和括号类的数据一起由__init__执行
	3.第一个参数就是本身属性的名称
	4.其他参数将作为第一个参数属性的值
	5.将创建好的对象自动返回

ps:针对括号内第一个形参self其实就是一个普通的变量名而已
只不过该变量名将来专门接收对象的 所以给它起了个固定的名字叫self

绑定方法

"""
在类中定义的函数默认都是绑定给对象使用的
	即当对象来调时 会自动将对象当做第一个参数传入
"""
class Student:
    school = '清华大学'
    # __init__方法不能自己去调用 
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def func(self):
        print('%s正在调用func方法'%self.name)

    def index(self):
        print('%s正在调用index方法'%self.name)

obj1 = Student('jason', 18)
print(obj1)
obj2 = Student('kevin', 28)
# 类调用类中函数 有几个参数就需要传几个参数
Student.func(123,222)
# 对象调用类中函数  会将当前调用的对象当做第一个参数自动传入
obj1.func()
obj2.func()
print(obj1.func)
print(obj2.index)

image

标签:__,obj1,python,self,Day26,学习,对象,init,print
来源: https://www.cnblogs.com/GuoQQa/p/16110359.html

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

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

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

ICode9版权所有