潭州课堂25班:Ph201805201 第十课 类的定义,属性和方法 (课堂笔记)
类的定义
共同属性,特征,方法者,可分为一类,并以名命之 class Abc: # class 定义类, 后面接类名 ( 规则 首字母大写 )
cls_name = '这个类的名字是Abc' # 在类里定义的变量 是 属性 print( Abc.cls_name )
Abc.binbin = '正在25班教室' # 可以通过 类名.属性名 = 属性值 给类添加属性
print( Abc.binbin )
------》》》》》
这个类的名字是Abc
正在25班教室 类是一个独立存放 变量(属性),方法 的定单
其中: Abc.cls_name 在定义类时已经封装好的属性,
Abc.binbin = '正在25班教室' 在定义类后,进行属性的添加,封装
类的实例化,
obj = Abc() obj 是 Abc() 实例化 后得到的 实例 本质就是 return
print( obj.cls_name )
print( obj.binbin )
类 与 实例 的关系: 其是一类事物的抽象,不是真实存在的,描绘了该的共性,
比如:‘人’,‘动物’,‘家具’,某类事物的具体个休,
是该类事物的具体表现,是真实存在的。
实例也是一个独立存放 变量(属性),方法 的定单
不同实例间的问个空间不相通,当调用中的属性在实例中找不到时,会去类中寻找,找不到则报错,
基于类而创建的一个具体的事物,是具体存在的, 类的方法
class Abc:
def ee(self): # 在类里,函数 叫 方法
print(self) # self 是实例本身 obj = Abc() # 实例在调用 方法 时,自动传入 self 参数
obj.ee()
实例.方法(参数) ---》》 类.方法(实例,参数)
参数 self 将会自动传入, 通常谁调用,就指的是谁, 私有属性,方法
class Abc:
_x = 2 # 私有的定义,
__y = '不能说的秘密' # 私有的定义,
obj = Abc()
print(obj._x)
print(obj._Abc__y)
在类中,可以定义私有属性,方法:
_名称() -----》》 该受保护的属性,方法可以直接调用,原则上不能修改
__名称() -----》》 不能直接调用, 可以用 类名(或实例名)._类名__属性名(或方法名) 初始化 和 删除实例
class Abc:
def __init__( self,name ): # 类的固定方法,会在不同情况下自动调用,
self.name = name
..... .... 返回 sself 的数据属性,{}形式
print('初始化 ') def __del__(self): # 定义了 删除 方法
print('正在删除实例') obj = Abc('花痴') # 实例化时 自动调用 __init__
print(obj.name)
del obj # 删除 实例 增删改查的操作:
class CHinse:
coontry = 'CHinse'
def __init__(self,name):
self.name = name
def ply_ball(self,ball):
print( '%s正在打%s'%(self,name) )
# 查
print(CHinse.coontry) # ---》》CHinse
# 改
CHinse.coontry = 'japan'
print(CHinse.coontry) # ---——》》japan
p1 = CHinse('花痴')
print(p1.coontry) # ————》》黄色
# 增
CHinse.fu_se = '黄色'
print(CHinse.fu_se) # ————》》增加 print(p1.fu_se)
# why? :创建的是 实例,改的是类,通过 实例 引用的 类
# 删除
print(CHinse.__dict__)
del CHinse.fu_se
del CHinse.coontry
print(CHinse.__dict__) # 下面方法的操作,
# 增
def eat_food(self,food):
print('%s正在吃%s'%( self.name, food )) CHinse.eat = eat_food
p1.eat('饭') # ————》》 花痴正在吃饭 # 改
def abc(self):
print('abc') CHinse.ply_ball = abc
p1.ply_ball() # ---->>> abc
潭州课堂25班:Ph201805201 第十课 类的定义,属性和方法 (课堂笔记)的更多相关文章
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第四课 登录注册 (课堂笔记)
index.html 首页 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第三课 (课堂笔记)
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第二课 (课堂笔记)
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第一课 (课堂笔记)
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 潭州课堂25班:Ph201805201 爬虫基础 第八课 selenium (课堂笔记)
Selenium笔记(1)安装和简单使用 简介 Selenium是一个用于Web应用程序测试的工具. Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, ...
- 潭州课堂25班:Ph201805201 爬虫基础 第一课 (课堂笔记)
爬虫的概念: 其实呢,爬虫更官方点的名字叫数据采集,英文一般称作spider,就是通过编程来全自动的从互联网上采集数据.比如说搜索引擎就是一种爬虫.爬虫需要做的就是模拟正常的网络请求,比如你在网站上点 ...
- 潭州课堂25班:Ph201805201 爬虫基础 第十五课 js破解 二 (课堂笔记)
PyExecJs使用 PyExecJS是Ruby的ExecJS移植到Python的一个执行JS代码的库. 安装 pip install PyExecJS 例子 >>> import ...
- 潭州课堂25班:Ph201805201 并发(协程) 第十五课 (课堂笔记)
#斐波那契 def fid(n): res = [] indx = 0 a = 0 b = 1 while indx < n : res.append(b) a,b = b,a+b indx + ...
- 潭州课堂25班:Ph201805201 tornado 项目 第十二课 项目部署(课堂笔记)
运行多个Tornado实例 网页响应不是特别的计算密集型处理 多个实例充分利用 CPU 多端口怎么处理 Linux 常见应用服务配置模式 nginx 和 supervisord:采用主配置文件 + 项 ...
随机推荐
- Faster rcnn代码理解(2)
接着上篇的博客,咱们继续看一下Faster RCNN的代码- 上次大致讲完了Faster rcnn在训练时是如何获取imdb和roidb文件的,主要都在train_rpn()的get_roidb()函 ...
- register 用法注意与深入--【sky原创】
register 用法注意与深入: gcc -o test test.c 这样编译的话会报错的,因为寄存器变量是不能取地址的,只有内存的变量才能取地址 寄存器变量取的是虚拟地址 #inc ...
- Python3学习笔记26-unittest模块
unittest单元测试框架,主要由四部分组成:测试固件.测试用例.测试套件.测试执行器 测试固件(test fixture) 测试固件有两部分,执行测试前的准备部分setUp(),测试执行完后的清扫 ...
- java注解优缺点
优点: 1.节省配置,减少配置文件大小 2.编译时即可查看正确与否,提高效率 缺点: 1.增加了程序的耦合性,因为注解保存在class文件中,而且比较分散 2.若要对配置进行修改需要重新编译 @aut ...
- route 的标志位
linux下利用route命令查看当前路由信息时,会打印如下信息: root@root:/# route Kernel IP routing tableDestination Gateway ...
- centos6.7安装系统后看不到网卡无法配置IP的解决办法
新安装centos6.7后发现/etc/sysconfig/network-scripts目录下没有eth0的网卡配置,通过ifconfig可以看到eth0的硬件地址 于是新建网卡输入一下内容 # c ...
- echarts地图使用
在使用echarts3当中,地图需要的数据时分开的,需要自己下载,而在echarts3官网上的地图数据只有全国.中国.各省的地图 如果我们需要使用更详细的地图,需要在echarts2的生成需要的地级市 ...
- spring事物的传播行为及隔离
关于@Transactional注解: 添加事务注解1.使用 propagation 指定事务的传播行为, 即当前的事务方法被另外一个事务方法调用时如何使用事务, 默认取值为 REQUIRED, 即使 ...
- 【转载】JavaScript中的属性:如何遍历属性
转载自:http://www.cnblogs.com/ziyunfei/archive/2012/11/03/2752905.html 在JavaScript中,遍历一个对象的属性往往没有在其他语言中 ...
- Android 截屏与 WebView 长图分享经验总结
最近在做新业务需求的同时,我们在 Android 上遇到了一些之前没有碰到过的问题,截屏分享. WebView 生成长图以及长图在各个分享渠道分享时图片模糊甚至分享失败等问题,在这过程中踩了很多坑,到 ...