Python项目案例开发从入门到实战-1.3 Python面向对象设计
1.3.1定义于使用类
- 类的定义
class class_name;
attribute
function
例:
class Person:
age=18
def say():
print("Hello!")
1.3.2构造函数
一个特殊的方法,以两个下划线“__”开头和结尾
class Complex:
def __init__(self, realpart,imagpart):
self.r=realpart
self.i=imagpart
x=Complex(3.0,2)
print(x.r,x.i)
1.3.3析构函数
另一个特殊的方法,以两个下划线“__”开头和结尾
class Complex:
def __init__(self, realpart,imagpart):
self.r=realpart
self.i=imagpart
def __del__(self):
print("It has gone")
x=Complex(3.0,2)
print(x.r,x.i)
del x
1.3.4实例属性和类属性
属性(成员变量)有两种,一种是实例属性,一种是类属性(类变量)。
实例属性是在构造函数中定义的,定义时以self作为前缀
类属性是在类中方法之外定义的属性
在主程序中,实例属性属于(实例)对象,只能通过对象名访问,而类属性属于类,可通过类名访问,也可通过实例对象访问
例:
class Person:
type = mammal 类属性
def __init__(self,str,n): 构造函数
self.name = str 实例属性
self.sage = n
def sat():
...
1.3.5私有成员和共有成员
属性名前有两个下划线“__”为为私有属性,否则为共有属性
class Car:
price = 100
def __init__(self, c,w):
self.color = c 共有属性
self.__weight = w 私有属性
car1 = Car("Red",10)
print(car1.color)
print(car1.__Car__weight)
1.3.6方法
class Fruit:
price=100
def __init__(self):
self.__color = ''
def __output(self): 私有方法
print(self.__color) 访问私有属性
def output(self):
self.__output() 通过私有方法访问私有属性
@staticmethod
def getPrice() 定义静态方法
return Fruit.price
1.3.7类的继承
class 派生类名(基类名)
派生类成员
1.3.8多态
不想写了。。。
Python项目案例开发从入门到实战-1.3 Python面向对象设计的更多相关文章
- 《ASP.NET Core跨平台开发从入门到实战》Web API自定义格式化protobuf
<ASP.NET Core跨平台开发从入门到实战>样章节 Web API自定义格式化protobuf. 样章 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于 ...
- python项目案例
python项目案例1:----此学习案例用python3编写,摘自明日科技,感谢! 学生管理系统: 功能描述:具有增删改查,排序,保存并显示学生的全部信息. 1.主界面---函数menu(),显示功 ...
- Django 入门项目案例开发(上)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. Django 入门案例开发(中) http://www.cnblogs.com/focusBI ...
- 【Python高级工程师之路】入门+进阶+实战+爬虫+数据分析整套教程
点击了解更多Python课程>>> 全网最新最全python高级工程师全套视频教程学完月薪平均2万 什么是Python? Python是一门面向对象的编程语言,它相对于其他语言,更加 ...
- python全栈开发从入门到放弃之迭代器生成器
1.python中的for循环 l = [1,2,3,4,5,6] for i in l: #根据索引取值 print(i) 输出结果: 1 2 3 4 5 6 2.iterable 可迭代的 可迭 ...
- python全栈开发从入门到放弃之socket并发编程多线程
一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 二 开启线程的两种方式 from threadi ...
- python全栈开发从入门到放弃之socket并发编程多线程GIL
一 介绍 ''' 定义: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple nati ...
- python全栈开发从入门到放弃之字符编码
一 了解字符编码的知识储备 1. 计算机基础知识(三幅图) 2. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中 ...
- python 微服务开发书中几个方便的python框架
python 微服务开发是一本讲python 如果进行微服务开发的实战类书籍,里面包含了几个很不错的python 模块,记录下,方便后期回顾学习 处理并发的模块 greenlet && ...
- Django 入门项目案例开发(下)——创建项目应用及模型类
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. 前面两章是在已经开发好的项目上用来描述环境和业务,这一章创建一个全新的项目来用作开发,你可以跟 ...
随机推荐
- Net6 托管服务、FluentValidation
Net6 托管服务.FluentValidation 托管服务 1.场景,代码运行在后台.比如服务器启动的时候在后台预先加载数据到缓存,每天凌晨3点把数据导出到备份数据库,每隔5秒钟在两张表之间同步一 ...
- 051_Lightning 定义 直接翻译来的
那么为什么要命名为"Lightning"?那么,想一想关于实际Lightning,你在暴风雨中看到的那种.想想它的速度有多快,如果你眨眼,你可能会想念它.想想它是多么美丽; Lig ...
- postman导出Collection文件
postman接口调用工具可以将曾经使用过的请求配置导出为文件保存,方法如下: 1.编写一个接口测试用例 2.按组分类 3.导出 参考来源: https://blog.csdn.net/IBLiplu ...
- python ElementTree 节点标签修改
在网上能找到很多关于xml库ElementTree的增删改查用法,这里我就不重复写那么多了. 主要记录一个,不是很容易查到的用法,比如一个标签,<name></name>,我需 ...
- 2022-07-10 第一小组 张明旭 前端CSS学习记录
今天是正式学习的第二天,昨天那个作业项目真的难,自己做一会就得问这问那,还有大神带一带(?_?)... 今天学习的内容是前端中的CSS,男上加男..... 知识点: Css层叠式表(网页美化) 1.定 ...
- word在指定页面设置页码
需求:比如,毕业论文前面几页要求罗马数字(摘要-目录)(这里设置页码格式即可完成),后面全是阿拉伯数字(这里比较难搞,以下方法是解决这里的) 方法: 1. 光标移到指定页面的第一个字符所在的位置前 2 ...
- modesim : mosel not define
这个星期仿真sdram时,添加的sdram 模型文件在modesim中总是找不到,在qq群里提问和私聊别人都没有得到解决方法.于是自己摸索了好多天.终于得到了解决. 可以看到modesim里面work ...
- UE5农场项目小功能(1)-砍树
砍树功能效果的实现 在UE中想做一个砍树的功能,B站上没找到什么教程,最后在油管上找到个视频并跟着实现了,一共设计到三个蓝图和一个什么也没写的蓝图接口,下面介绍下步骤. 1.角色蓝图的部分 人物这 ...
- COLMAP论文阅读笔记——sfm算法、不定期更新
文章目录 structure from motion revisited 第一步 对应点搜索 特征提取feature extraction 匹配matching 几何验证geometric verif ...
- 解决element-ui表格多重嵌套循环时,添加row-key="id" 出现Duplicate keys detected: 'XXX' 错误的问题
Duplicate keys detected: 'XXX' 错误,怀疑是多重嵌套循环时 :key="item.id或index" 不能重复的问题,但设置了不同的 key 后并未解 ...