Python学习第十五课——类的基本思想(实例化对象,类对象)
类的基本思想
类:把一类事物的相同的特征和动作整合到一起就是类
类是一个抽象的概念
对象:就是基于类而创建的一个具体的事物(具体存在的)
也是特征和动作整合到一块
对象写法
# 对象写法
def school(name, addr, type): # 对象
def __init__(name, addr, type): # 初始化
sch = {
'name': name,
'addr': addr,
'type': type,
'kaoshi': kao_shi,
'zhaosheng': zhao_sheng,
}
return sch def kao_shi(school):
print('%s 学生正在考试' % school['name']) def zhao_sheng(school):
print('%s %s 正在招生' % (school['type'], school['name'])) return __init__(name, addr, type) s1 = school('Hs', 'henan', '私立学校')
print(s1['name'])
s1['zhaosheng'](s1)
# 类的相关属性 class Chinese: # 类
tuanyuan='团员' # 属性 def sui_di_tu_tan(): # 函数
print('随地吐痰') print(Chinese.tuanyuan) # 团员
Chinese.sui_di_tu_tan() # 随地吐痰 # print(dir(Chinese))
# print(Chinese.__dict__) # 查看属性字典 print(Chinese.__dict__['tuanyuan']) # 团员
Chinese.__dict__['sui_di_tu_tan']() # 随地吐痰
类的写法
# 类写法
class School(object):
def __init__(self,name, addr, type):
self.name=name
self.addr=addr
self.type=type def kao_shi(self):
print('%s 学生正在考试' %(self.name)) def zhao_sheng(self):
print('%s %s 正在招生' % (self.type, self.name)) s1 = School('Hs', 'henan', '私立学校') # 此时直接运行了__init__()函数
s2 = School('清华', '北京', '公立学校')
print(s1.__dict__) s1.zhao_sheng()
s2.zhao_sheng()
s1.kao_shi()
s2.kao_shi()
class Chinese: # 类
tuanyuan='团员' # 属性
def __init__(self,name,age,sex):
self.mingzi=name
self.nianling=age
self.xingbie=sex def sui_di_tu_tan(self): # 函数
print('%s 随地吐痰' %(self.mingzi)) def cha_dui(self): # 函数
print('%s 插队' % (self.mingzi)) c1=Chinese('meimei',24,'female')
c2=Chinese('haohao',24,'male') print(c1.__dict__)
print(c2.__dict__) c1.sui_di_tu_tan()
c2.cha_dui()
类的增删查改
# 类的增删改查 class Chinese:
country = 'China' def __init__(self, name):
self.name = name def play_baskctball(self, ball):
print('%s 正在打 %s ' % (self.name)) # 查看
print(Chinese.country) # China # 修改 Chinese.country = 'huayi'
print(Chinese.country) # huayi
p1=Chinese('hanhan')
print(p1.__dict__)
print(p1.country) #增加 Chinese.tuanyuan='团员'
print(Chinese.tuanyuan) # 团员 # 删除 del Chinese.tuanyuan
del Chinese.country print(Chinese.__dict__)
print(Chinese.country) # 增加函数 def eat_food(self,food): self.food=food
print('吃%s'%(self.food))
Chinese.eat=eat_food
print(Chinese.__dict__) p1.eat('苹果') # 吃苹果
实例属性的增删改查
# 实例属性的增删改查 class Chinese:
country = 'China' def __init__(self, name):
self.name = name def play_baskctball(self, ball):
print('%s 正在打 %s ' % (self.name, ball)) c1 = Chinese('hanhan')
print(c1.__dict__) # 查看
print(c1.name) # hanhan print(c1.play_baskctball) # 增加 c1.age = 18
print(c1.__dict__) # {'name': 'hanhan', 'age': 18}
print(c1.age) # def test(self):
print('我是来自实例的函数属性') c1.test = test
print(c1.__dict__)
c1.test(c1) # 我是来自实例的函数属性 # 修改 c1.age=19
print(c1.__dict__) print(c1.age) # # 删除
del c1.age
print(c1.__dict__) #{'name': 'hanhan', 'test': <function test at 0x030ABC00>}
实例属性和类属性混合使用
class Chinese:
country = 'China' def __init__(self, name):
self.name = name def play_baskctball(self, ball):
print('%s 正在打 %s ' % (self.name, ball)) c1 = Chinese('hanhan')
print(c1.country) # China c1.country='中国'
print('类的---->',Chinese.country) # 类的----> China
print('实例的--->',c1.country) # 实例的---> 中国
插曲:
country='China'
class Chinese:
def __init__(self, name): # 只要一实例化对象 立刻执行该方法
self.name = name
print('--->',country) # ---> China
def play_baskctball(self, ball):
print('%s 正在打 %s ' % (self.name, ball)) c1 = Chinese('hanhan') #---> China 此时 可以找到类以外的变量 # print(c1.country) # 报错
插曲2:
country='China'
class Chinese:
country='中国'
def __init__(self, name): # 只要一实例化对象 立刻执行该方法
self.name = name
print('--->',country) # ---> China
def play_baskctball(self, ball):
print('%s 正在打 %s ' % (self.name, ball)) c1 = Chinese('hanhan') # 此时 还是 ---> China 而不是中国
print(c1.country) # 此时才为中国
Python学习第十五课——类的基本思想(实例化对象,类对象)的更多相关文章
- Python学习第二十五课——Mysql (多表查询)
多表查询: 内连接查询: 首先:创建两个表一个为tableA,一个为tableB,并且插入数据(代码省略) 同时查询两个表的记录: select * from tableA,tableB; 根据tab ...
- Python学习第十五篇——类继承和类实例化
学习Python类时,我们明白了类的本质,以及所谓的面向对象编程思想强调的对事物本身的属性,我们对某一类事物进行描述——采用了很多方法,这些方法描述了类的属性(比如猫科动物的眼睛,四肢,是否哺乳类等等 ...
- Python学习第十九课——类的装饰器
类的装饰器 # def deco(func): # print('==========') # return func # # # @deco #test=deco(test) # # def tes ...
- Python 学习 第十五篇:模块搜索路径和包导入
在导入自定义的模块时,除了指定模块名之外,也需要指定目录,由于Python把目录称作包,因此,这类导入被称为包导入.包导入把计算机上的目录变成Python的命名空间,而目录中所包含的子目录和模块文件则 ...
- python 学习笔记十五 web框架
python Web程序 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. Python的WEB框架分为两类: 自己写socket,自 ...
- python 学习笔记十五 django基础
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
- python学习第十五天 -面向对象之继承和多态
大家都知道面向对象的三大特性:封装,继承,多态.封装特性在上一章节已经讲解过.这一章节主要讲解继承和多态. 继承: 当定义一个类的时候,可以从现有的类进行继承.那么新定义的类可以称为子类,被继承的现有 ...
- JAVA学习第二十九课(经常使用对象API)- String类
多线程告一段落,開始经常使用对象API的涉及,背也要背下来!.! 日后开发,遇见最多的对象是文字,也就是字符串 String类 字符串是一个特殊对象 字符串一旦初始化就不能够被改变 一.特点 publ ...
- Python学习札记(十五) 高级特性1 切片
参考: 高级特性 切片 Note 1.掌握了Python的基础语法之后,就可以写出很多很有用的程序了,比如打印1-90的奇数: #!/usr/bin/env python3 L = [] n = 1 ...
随机推荐
- Vue基础笔记4
路由传参 第一种 router.js { path: '/course/detail/:pk/', name: 'course-detail', component: CourseDetail } 传 ...
- [蓝桥杯][基础训练]2n皇后问题
Description 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行 ...
- github是什么,有什么用
转载连接:https://blog.csdn.net/obkoro1/article/details/68066441 写在前面:关于github的文章我已经写了两篇了,关于github个人网站搭建和 ...
- synchronized锁机制的实现原理
Synchronized 锁机制的实现原理 Synchronized是Java种用于进行同步的关键字,synchronized的底层使用的是锁机制实现的同步.在Java中的每一个对象都可以作为锁. J ...
- C语言:计算输出给定数组中每相邻两个元素的平均值的平方根之和。
//计算输出给定数组中每相邻两个元素的平均值的平方根之和. #include <stdio.h> #include <math.h> ]) { double a,b,s=0.0 ...
- 4_6 师兄帮帮忙(UVa12412)(选做)
你好,我是外国语学院的本科生.正如你所知道的,编程是一个 在我们大学必修课,即使他/她的专业是远离计算机科学.我根本不喜欢这个 课程,因为我不擅长电脑,我不想有任何编程的尝试! 但我不得不做作业: ...
- 创建mysql数据库,在新数据库中创建表,再尝试删除表
创建之前,先登录数据库存 mysql -u 账号 -p密码 登录完成后,展示一下已存在的数据库 show databases; 创建数据库 create database test111; 然后展示一 ...
- Kindle阅读产品体验报告-随时随地畅享阅读
产品入门-第一份产品体验报告Kindle阅读-随时随地畅享阅读时间:2018/11/18-11/22 Kindle阅读 一.产品概括 (1)体验环境 机型:荣耀8 系统:EMUI 8.0(Andr ...
- 大盘及策略收益率的公式推导与Python代码
一.模型前提与假设 设策略总天数为\(n\).第\(t\)日大盘的收盘价为\(P_t\).第\(t\)日的单日收益率为\(r_t\).\(n\)天的累积收益率为\(r_{cum}\) 假设策略仅买卖大 ...
- 【PAT甲级】1002 A+B for Polynomials (25 分)
题意:给出两个多项式,计算两个多项式的和,并以指数从大到小输出多项式的指数个数,指数和系数. AAAAAccepted code: #include<bits/stdc++.h> usin ...