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 获取学习资料和一起探讨问题. 前面两章是在已经开发好的项目上用来描述环境和业务,这一章创建一个全新的项目来用作开发,你可以跟 ...
随机推荐
- C#读取XML字符串及将XML字符串反序列化为对象
在开发中遇到调用接口范围XML格式结果情况,获取结果中我们需要的信息则可能需要这两种数据处理: 1.如何将xml字符串转换为xml对象,及查询想要的节点: 通过XmlDocument对象加载xml字符 ...
- curl 命令工具
curl工具 简介 curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP, FTPS,HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等协议. ...
- Java基础——二维数组
package com.zhao.demo; public class Demo08 { public static void main(String[] args) { //二维数组 int[][] ...
- iOS开发之实现自定义浮动操作框效果
今天有个需求是如上图实现类似微信的自定义浮动操作框效果 我自己就写了个demo,大家感兴趣的可以试试,下面是代码 VC代码如下 #import "TestCustomMenuItemVC.h ...
- CCF 202009-2 风险人群筛查
#include <iostream> #include <bits/stdc++.h> #include <string> using namespace std ...
- TypeError: Cannot read property ‘$options‘ of undefined vue
vue弹框页面 <el-form :model="ruleForm" ref="ruleForm" label-width="100px&quo ...
- html 手机端适配不同手机高度 ,把内容居中显示
手机端适配不同手机高度 ,把内容居中显示,可以将div.img.section.span.p等等元素,设置 top:50%; margin-top:xxvw; 这样可以保证主题内容居中显示.
- c++学习9 结构体
一 结构体赋值 结构体赋值的方法有三种,逐个成员赋值,整体赋值和拷贝赋值. 设一个结构体有struck student{ int age;char ch[32]; }: 逐个成员赋值:student ...
- mockjs 加上 json-server 快速生成前端数据
const mock = require('mockjs'); // 引入mockjs const data = mock.mock({ "data|20": [{ "i ...
- Matlab|fastica遇到的问题
fastica 1 安装 FastICA 在matlab代码实现以及运行结果by阳光idol 安装步骤博主阳光idol已经写的很清楚了 FastICA 在matlab代码实现.运行结果及错误调试方法 ...