day18 面向对象

---恢复内容开始---

1.1类的相关知识

声明

def functionName(args):"函数文档字符串""""函数体"""
class  类名:"""类的文档字符串""""""类体"""
#我们创建一个类
class Date:pass
#声明函数vs声明类

 

属性

class Person:   #定义一个人类role = 'person'  #人的角色属性都是人def walk(self):  #人都可以走路,也就是有一个走路方法print("person is walking...")print(Person.role)  #查看人的role属性
print(Person.walk)  #引用人的走路方法,注意,这里不是在调用

 

实例化:类名加括号就是实例化,会自动触发__init__函数的运行,可以用它来为每个实例定制自己的特征

实例化的过程就是类--->对象的过程

原本我们只有一个Person类,在这个过程中,产生了一个egg对象,有自己具体的名字,攻击力和生命值

语法:对象名=类名(参数)

    self

self:在实例化时自动将对象/实例本身传递给__init__的第一个参数

一:我们定义的类的属性到底存到哪里了?有两种方式查看
dir(类名):查出的是一个名字列表
类名.__dict__:查出的是一个字典,key为属性名,value为属性值二:特殊的类属性
类名.__name__# 类的名字(字符串)
类名.__doc__# 类的文档字符串
类名.__base__# 类的第一个父类(在讲继承时会讲)
类名.__bases__# 类所有父类构成的元组(在讲继承时会讲)
类名.__dict__# 类的字典属性
类名.__module__# 类定义所在的模块
类名.__class__# 实例对应的类(仅新式类中)

  

1.2 对象的相关知识

class 类名:def __init__(self,参数1,参数2):self.对象的属性1 = 参数1self.对象的属性2 = 参数2def 方法名(self):passdef 方法名2(self):pass对象名 = 类名(1,2)  #对象就是实例,代表一个具体的东西#类名() : 类名+括号就是实例化一个类,相当于调用了__init__方法#括号里传参数,参数不需要传self,其他与init中的形参一一对应#结果返回一个对象
对象名.对象的属性1   #查看对象的属性,直接用 对象名.属性名 即可
对象名.方法名()     #调用类中的方法,直接用 对象名.方法名() 即可

 

1.3类名空间与对象的名称空间

创建一个雷就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称之为类的属性

而类有两种属性:静态属性和动态属性

    静态属性就是直接在类中定义的变量

    动态属性就是定义在类中的方法

其中类的数据属性是共享给所有的对象的

而类的动态属性是绑定到所有的对象的

 

转载于:https://www.cnblogs.com/daien522556/p/9235143.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android studio导入support-v4.jar

support-v4.jar是support library。路径为<sdk>/extras/android/support/v4/android-support-v4.jar.转载于:https://www.cnblogs.com/Magina-learning/p/7899788.html

html5 --- 特性检测

使用Moderniz库可以对H5的特性进行检测,下载网址: https://modernizr.com // 在HTML 中的head标签中导入 <script src"/modernizr.min.js"></script>// ps:注意src的路径画布(canvas)特性检测: if (Modernizr.canvas){// 开始画... } else {// 浏览器不…

编程学习笔记(第三篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(3)软件开发的现状、UML扩展...

一、软件开发的现状 软件领域正在发生一个巨变&#xff0c;特别是近几年来&#xff0c;软件领域正在发生翻天覆地的变化。 这一变化主要以这个云 端大数据&#xff0c; 这些是随着目前最先进的一些技术的产生而产生的。 随着这些新的技术以及软件开发方法的不断的提升&#xf…

百度地图得到两地点(通过经纬度)的距离、 通过经纬度获取详细地址

1 /**2 * 计算两点间的距离3 * pt1 {lng:"12.34",lat:"3423"}第一个点的经纬度4 * pt2 {lng:"12.34",lat:"3423"}第二个点的经纬度5 * */6 getDistance:function(pt1,pt2){7 var map new BMap.Map(&…

html5 --- canvas绘制网格并画x、y轴

效果如下: // 代码如下: <body><canvas width"500" height"375" id"c"></canvas><script>(function draw_a() {var a_canvas document.getElementById("c");var context a_canvas.getContext("2d&qu…

系统调用软中断处理程序system_call分析

最近学习了系统调用的整个流程&#xff0c;这里总结并记录。同时作为学习孟宁老师的linux内核课程的作业。 唐建&#xff0c;《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1、概述 系统调用整个过程为&#xff1a;API——封装例程——system_c…

Poj3261 Milk Patterns

题目传送门 题意&#xff1a;对一个字符串求一个最长的子串使得它至少出现k次 额&#xff0c;因为这个题目呢&#xff0c;他的字符集非常大(100W) 所以直接用SAM是不行了&#xff0c;我们考虑用离散化SA&#xff0c;让后就可以分块rmq了 当然这样很麻烦&#xff0c;我们还是用S…

html5 --- 使用canvas画一个渐变矩形

我们希望得到如下效果: 首先准备画布 // HTML <canvas width"500" height"375" id "a"> </canvas>// JS // 获取画布的DOM元素 var a_canvas document.getElementById("1"); // 获取画布的上下文元素(之后,就可以使用…

PHP优化与提升

一。十个不错的建议1.使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里。这种方法把存储空间降到了接近四分之一&#xff08;char(15) 的 15 个字节对整形的 4 个字节&#xff09;&#xff0c;计算一个特定的地址是不是在一个区段内页更简单了&#xff0…

Servlet详解之两个init方法的作用

在Servlet中 javax.servlet.GenericServlet类 继承自java.lang.Object 实现了Serializable,&#xff0c;servlet &#xff0c;ServletConfig 三个接口 被继承对象javax.servlet.http.HttpServlet &#xff08;这是我们常用的一个类&#xff09; 但仔细看GenericServlet的API&am…

vue --- 使用vue在html上显示当前时间

希望如下效果(时间按秒钟更新) 导入Vue依赖的CDN <script src"https://unpkg.com/vue/dist/vue.min.js"> </script>创建视图 <div id"app">{{date}}</div>Model <script>var app new Vue({el: "app",data: …

namespace 或The content of element type mapper must match EMPTY

必须为元素类型 "mapper" 声明属性 "namespace" 或The content of element type "mapper" must match "EMPTY" <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org/…

EAS WebService部署

1、创建 facade ,设置好接口及参数、返回信息; 2、代码&#xff1a;元数据打包部署到服务器; 3、然后修改配置文件&#xff1a; 将本地开发环境生成的.wsdd文件拷贝到eas\server\deploy\eas.ear的web.war下的WEB-INF目录下&#xff0c;再将.wsdd文件中的<service></se…

vue --- 购物车页面

下面我看开始自己写一个购物车的页面. 我们希望得到如下的效果: 说明: 购买数量最小为0购买数量变化时,对应的总价随之变化点击移除操作对应的商品会移除掉,总价随之改变每个商品作为一个list表的一个对象每个对象,包含id、name、price、count等属性 index.html (整体代码最…

Javascript阻止表单提交

Javascript阻止表单提交 Html 1.<form name"loginForm" action"login.aspx" method"post"> 2. <button type"submit" value"Submit" id"submit">Submit</button> 3.</form> Js …

XML CDATA的作用

操作XML文件时&#xff0c;如果允许用户输入内容&#xff0c;例如∶"< "、">"、"/"、""等&#xff0c;当生成XML时&#xff0c;会破坏了XML结构&#xff0c;使数据中断。 这就要用XML CDATA 在XML文档中的所有文本都会被解析器解…

vue --- 从模块从父元素获取数据

vue的精彩之处在于其组件的可复用性.下面谈谈组件(component)如何从父元素获取数据 模块引用 首先说说,如何引用模块 <div id"app"><my-component ></my-component> </div> <script src“unpkg.com/vue/dist/vue.min.js”> </…

前端知识总结(一)

1、用原生JS实现forEach if(!Array.prototype.forEach) {Array.prototype.forEach function(fn, context) {var context arguments[1];if(typeof fn ! "function") {throw new TypeError(fn "is not a function");}for(var i 0; i < this.length; …

广播风暴

能够抑制网络风暴的是&#xff1f;A中断器 B集线器 C网桥 D路由器 答案D解析&#xff1a;&#xff08;1&#xff09;广播风暴&#xff1f;一个数据帧或包被传输到本地网段上的每个节点就是广播&#xff1b;由于网络拓扑的设计和连接问题&#xff0c;或其他原因导致广播在网段内…

java getClass()

Java反射学习 所谓反射&#xff0c;可以理解为在运行时期获取对象类型信息的操作。传统的编程方法要求程序员在编译阶段决定使用的类型&#xff0c;但是在反射的帮助下&#xff0c;编程人员可以动态获取这些信息&#xff0c;从而编写更加具有可移植性的代码。严格地说&#xff…