潭州课堂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:采用主配置文件 + 项 ...
随机推荐
- python2和3使用pip时的问题
win10,电脑之前装有Anaconda,python2.因为需要用到python3,所以直接下载安装了python3.python3默认路径在c盘.我将其移到D盘并修改了两个环境变量.这时电脑的默认 ...
- Linux内核基础设施
1.前言 本文主要介绍Linux内核实现的基本数据类型,包括链表,内核对象,内核对象引用计数,内核对象集合, 2.链表 1. 链表的基本结构 内核链表可以将任何类型的数据结构连接起来,链表结构如下: ...
- 使用ado.net打造通用的数据库操作类
最近在项目中使用中碰到了这样一种情况,查询的数据是从Oracle中获取的,但是记录下来的数据是存在Sql Server中(企业Oracle数据库管理太严,没办法操作).而且我在之前的工作中也碰到过使用 ...
- cocos2d-x播放视频的处理
cocos2d-x是支持直接播放视频的,用的是Native端的播放器,视频的默认层级是在cocos的层级之上,如果是想让视频上面有cocos的控件,只能将视频的UI层级放在最下面,这个方法网上已经有比 ...
- Project Euler Problem6
Sum square difference Problem 6 The sum of the squares of the first ten natural numbers is, 12 + 22 ...
- ArrayList源码分析笔记(jdk1.8)
1.特点: ArrayList 是一个动态数组,它是线程不安全的,允许元素为null 可重复,插入有序 读写快,增删慢 扩容:默认容量 10,默认扩容1.5倍 建议指定容量大小,减少扩容带来的性能消耗 ...
- [HTML]点击按钮,页面总是跳回顶端的解决方法(Clicking an button,always resets the view to top of page)
1 前言 当网页页面较长或者表单较多时,右侧会出现滚动条,然而经常会出现点击底部的<button>按钮或者<a>超链接,会出现点击后,当前页面会回到顶端. 2 方案 例如样例代 ...
- 分布式调用技术 RPC VS REST
一 分布式调用大体上就分为两类,RPC式的,REST式的,两者的区别主要是就是: 1. RPC是面向动作的(方法调用) 2. REST是面向资源的(URL表示资源,HTTP动词表示动作) 从变现形式来 ...
- CentOS配置通过DHCP的方式动态获取IP
修改/etc/sysconfig/network NETWORKING=yes 修改/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBO ...
- laravel 同数据表字段比较查询和状态不正规排序
今天写群组推荐接口,要求未满的群 ( 群最大人数字段maxusers, 群人数字段affiliations_count 都在群组表中),官方,热门(普通群0 ,官方1,热门2 ) 排序的群 同表字段比 ...