本节内容

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]

面向对象【林老师版】:__init__定制自己独有的特征(三)的更多相关文章

  1. 面向对象【林老师版】:特性(property)(十六)

    一.什么是特性property property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 例一:BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而非方法,如果我们将其做成 ...

  2. 面向对象【林老师版】:面向过程vs面向对象(一)

    一.面向过程 1.引子 面向过程:核心是过程二字,过程指的是解决问题的步骤,设计一条流水线,机械式的思维方式优点:复杂的问题流程化,进而简单化缺点:可扩展性差 2.验证代码 import json i ...

  3. Radmin Server-3.5 完美绿色破解版(x32 x64通用) 第三版 + 单文件制作方法

    Radmin Server v3.5 汉化破解绿色版(x32 x64通用) 第三版 下载链接: https://pan.baidu.com/s/1qYVcSQo 2016年7月8日更新第三版1.修复在 ...

  4. MVC5+EF6 简易版CMS(非接口) 第三章:数据存储和业务处理

    目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...

  5. Java——面向对象的特征三:多态性

    2.5面向对象的特征三:多态性 2.5.1 关于java语言中的向上转型和向下转型 ①向上转型(upcasting) :  子--->父(自动类型转换) ②向下转型(downcasting) : ...

  6. 洗礼灵魂,修炼python(40)--面向对象编程(10)—定制魔法方法+time模块

    定制魔法方法 1.什么是定制魔法方法 首先定制是什么意思呢?其实就是自定义了,根据我们想要的要求来自定义.而在python中,其实那些所谓的内置函数,内置方法,内置属性之类的其实也是自定义出来的,不过 ...

  7. 《Java从入门到放弃》JavaSE入门篇:面向对象概念(入门版)

    要知道什么是面向对象,你首先要有个对象吧,所以······没有对象的可以回家洗洗睡了· 好吧,前面是开玩笑,要说明什么是面向对象,我们还是先 例子: 小呆:"小傻,你今天早餐吃的什么?&qu ...

  8. Python面向对象高级编程-__slots__、定制类,枚举

    当在类体内定义好各种属性后,外部是可以随便添加属性的,Python中类如何限制实例的属性? Python自带了很多定制类,诸如__slots__,__str__ __slots__ __slots__ ...

  9. 基于easyui开发Web版Activiti流程定制器详解(三)——页面结构(上)

    上一篇介绍了定制器相关的文件,这篇我们来看看整个定制器的界面部分,了解了页面结构有助于更好的理解定制器的实现,那么现在开始吧! 首先,我们来看看整体的结构: 整体结构比较简单,主要包括三个部分: 1. ...

随机推荐

  1. python之旅六【第六篇】模块

    json和pickle 用于序列化的两个模块json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进行转换 json模块提供了四 ...

  2. 【BZOJ3999】【TJOI2015】旅游 树剖

    题目大意 给你一棵树,有\(n\)个点.有\(q\)个操作,每次要你从\(x\)到\(y\)的路径上选两个点,使得距离\(x\)比较远的点的点权\(-\)距离\(x\)比较近的点的点权最大,然后把这条 ...

  3. bzoj 2761: [JLOI2011]不重复数字 (map||Treap)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2761 思路: map标记 实现代码: #include<bits/stdc++.h&g ...

  4. php unset对json_encode的影响

    先运行一段php代码: $a = Array(0=>'hello world', 1=>'girl', 2=>'boy'); var_dump(json_encode($a)); u ...

  5. 怎么让 Lua 5.3.4 支持中文变量名和中文函数名

    1. 在官网下载最新版Lua源码 Lua :Download 2. 解压后进入目录,找到/src/llex.c,打开修改 找到如下内容 修改为下面代码,并保存. default: { if (lisl ...

  6. 【转载】docker 应用之动态扩展容器空间大小

    docker 容器默认的空间是 10G, 如果想指定默认容器的大小(在启动容器的时候指定),可以在 docker 配置文件里通过 dm.basesize 参数指定,比如 docker -d --sto ...

  7. 使用nmon监控Linxu服务器性能

    nmon是IBM开发的Linux软件工具.能够监控多项Linux服务,最常见的如:CPU使用率.内存使用率.硬盘读写.网卡流量等. 并能设置参数,将记录的数据保存到文件,利用Excel做统计分析. 安 ...

  8. 【BZOJ5469】[FJOI2018]领导集团问题(动态规划,线段树合并)

    [BZOJ5469][FJOI2018]领导集团问题(动态规划,线段树合并) 题面 BZOJ 洛谷 题解 题目就是让你在树上找一个最大的点集,使得两个点如果存在祖先关系,那么就要满足祖先的权值要小于等 ...

  9. [NOI2012]美食节(费用流)

    题目描述 CZ市为了欢迎全国各地的同学,特地举办了一场盛大的美食节.作为一个喜欢尝鲜的美食客,小M自然不愿意错过这场盛宴.他很快就尝遍了美食节所有的美食.然而,尝鲜的欲望是难以满足的.尽管所有的菜品都 ...

  10. window无法启动mongodb服务:系统找不到指定的文件错误的解决方法

    原文:http://www.phperz.com/article/15/0530/131534.html 错误描述 错误2:系统找不到指定文件 思考过程 昨天做测试的时候,先后安装了两次MongoDB ...