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面向对象设计的更多相关文章

  1. 《ASP.NET Core跨平台开发从入门到实战》Web API自定义格式化protobuf

    <ASP.NET Core跨平台开发从入门到实战>样章节 Web API自定义格式化protobuf. 样章 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于 ...

  2. python项目案例

    python项目案例1:----此学习案例用python3编写,摘自明日科技,感谢! 学生管理系统: 功能描述:具有增删改查,排序,保存并显示学生的全部信息. 1.主界面---函数menu(),显示功 ...

  3. Django 入门项目案例开发(上)

    关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. Django 入门案例开发(中) http://www.cnblogs.com/focusBI ...

  4. 【Python高级工程师之路】入门+进阶+实战+爬虫+数据分析整套教程

    点击了解更多Python课程>>> 全网最新最全python高级工程师全套视频教程学完月薪平均2万 什么是Python? Python是一门面向对象的编程语言,它相对于其他语言,更加 ...

  5. 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  可迭代的 可迭 ...

  6. python全栈开发从入门到放弃之socket并发编程多线程

    一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 二 开启线程的两种方式 from threadi ...

  7. python全栈开发从入门到放弃之socket并发编程多线程GIL

    一 介绍 ''' 定义: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple nati ...

  8. python全栈开发从入门到放弃之字符编码

    一 了解字符编码的知识储备   1. 计算机基础知识(三幅图)       2. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中 ...

  9. python 微服务开发书中几个方便的python框架

    python 微服务开发是一本讲python 如果进行微服务开发的实战类书籍,里面包含了几个很不错的python 模块,记录下,方便后期回顾学习 处理并发的模块 greenlet && ...

  10. Django 入门项目案例开发(下)——创建项目应用及模型类

    关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. 前面两章是在已经开发好的项目上用来描述环境和业务,这一章创建一个全新的项目来用作开发,你可以跟 ...

随机推荐

  1. Hook新特性(一)

    基础Hook 1.useState const [state, setState] = useState(initialState); //返回一个state变量,指为initialState,set ...

  2. Jenkins多节点python环境隔离(Windows)

    Jenkins多节点python环境隔离(Windows) 使用Jenkins构建过程中,需要使用多个Jenkins节点并发构建 由于条件限制,只有一台Windows宿主机,所以在这台宿主机上部署多个 ...

  3. golang 解决 socket: too many open files, 以及 too many open files

    同事写的一段代,码业务场景:需要多次GET请求一个三方服务的http 接口,获取数据后写入文件.发现有部分文件没有写入.查看日志出现了报错"socket: too many open fil ...

  4. JavaScript判断是否包含中文字符

    一. <script language="javascript"> function funcChina(){ var obj = document.form1.txt ...

  5. Knowledge Fusion例子

    #! NX/KF 5.0 # #************************************************************************************ ...

  6. mongodb删除指定字段

    db.getCollection('geoServer').update({},{$unset:{longitude:null,latitude:null}},{ multi: true}) 实测有效 ...

  7. flutter TextField 高度问题(包括使用maxlines自适应高度以及改变textfield组件自定义高度)

    先上代码. Container( color: Colors.blue, constraints: BoxConstraints( minHeight: 10, maxHeight: 20 ), ch ...

  8. springboot修改默认端口

    方案一: src/main/resuorces 文件夹下新建application.properties 文件 并添加内容server.port=8011即可 方案二: 使用EmbeddedServl ...

  9. Idea 配置 tomacat

    步骤 1.点击settings 2.创建tomcat 并找到tomcat的目录 添加完成 3.创建Idea项目

  10. Java中Math类常用方法

    ​在编写程序时,可能需要计算一个数的平方根.绝对值或获取一个随机数等.java.lang包中的Math类包含许多用来进行科学计算的static方法,这些方法可以直接通过类名调用.另外,Math类还有两 ...