首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

享学课堂浅谈Python3极简教程之类、模块、错误和异常、文件

今天享学课堂给大家介绍一下关于Python3极简教程之类、模块、错误和异常、文件的详细介绍,下面我们一起来看一下吧。

面向对象设计思想是Class抽象的,Instance一个个具体的Class,比如学生是抽象的Class,而张三李四就是一个个具体学生。

定义

Class命名法。仅供內部用的Class,名称前会加一个底线。类定义一般格式:

classStudent:

pass

#或者

classDeveloper(object):

pass

object表示该类是从哪个类继承下来的,object是最终的父类。

classDeveloper(object):

#定义类属性

name='2xkt'

#变量名两个下划线开头,定义私有属性,这样在类外部无法直接进行访问,类的私有方法也是如此

__sex=0

#定义构造方法

def__init__(self,name,site,sex):

self.name=name

self.site=site

self.__sex=sex

#类方法

defget_sex(self):

returnself.__sex

defset_sex(self,sex):

self.__sex=sex

#调用:

if__name__=='__main__':

#实例化类

print(developer.site,developer.get_sex())#访问类的属性和方法

注意:以单下划线开头的表示的是protected类型的变量或方法,即保护类型,只能允许其本身与子类进行访问,不能用于frommoduleimport*。

单继承

classDeveloper(object):

#定义类属性

name='WuXiaolong'

#变量名两个下划线开头,定义私有属性,这样在类外部无法直接进行访问,类的私有方法也是如此

__sex=0

#定义构造方法

def__init__(self,name,site,sex):

self.name=name

self.site=site

self.__sex=sex

#类方法

defget_sex(self):

returnself.__sex

defset_sex(self,sex):

self.__sex=sex

#单继承

classAndroidCoder(Developer):

coder_id=1024

#定义构造方法

def__init__(self,name,site,sex,coder_id):

#调用父类构造方法

#Developer.__init__(self,name,site,sex)#老办法

super(AndroidCoder,self).__init__(name,site,sex)#采用新式

self.coder_id=coder_id

#重写父类的方法

defset_sex(self,sex):

self.__sex=sex

print('这是个秘密')

defget_sex(self):

returnself.__sex

#调用:

if__name__=='__main__':

#单继承

print(androidCoder.set_sex(2))

注意:super继承,要求最顶层的父类一定要继承于object,这样就可以利用super()函数来调用父类的init()等函数。

多继承

B继承A,C继承B

以上面的单继承为例,AndroidCoder继承了Developer,现在让PythonCoder继承AndroidCoder:

#多继承,B继承A,C继承B

classPythonCoder(AndroidCoder):

#定义构造方法

def__init__(self,name,site,sex,coder_id):

#调用父类构造方法

super(PythonCoder,self).__init__(name,site,sex,coder_id)

#调用:

if__name__=='__main__':

print(androidCoder.get_sex())

注意:多继承圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,Python会调用子类的;

Z继承X、Y

classJavaCoder(object):

java_id=1

#定义构造方法

def__init__(self,java_id):

self.java_id=java_id

print('来自JavaCoder')

classFullStackCoder(AndroidCoder,JavaCoder):

#定义构造方法

def__init__(self,name,site,sex,coder_id):

#调用父类构造方法

super(FullStackCoder,self).__init__(name,site,sex,coder_id)

JavaCoder.__init__(self,coder_id)#这里需要使用老办法

#调用:

if__name__=='__main__':

模块

Python模块跟Java里包概念差不多,使用import语句导入。

import语句

##导入模块

print(developer.site)

__name__属性

if__name__=='__main__':

pass

from…import语句

从模块导入指定内容或者*代表全部:

m=hello1(666,999)

作用域

正常的函数和变量名是公开的(public),可以被直接引用;以两个下划线开头,定义私有(private),这样在类外部无法直接进行访问;以单下划线开头的表示的是protected类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于frommoduleimport*。

标准库

Python本身带着一些标准的模块库,比如json模块。Python3中可以使用json模块来对JSON数据进行编解码,它包含了两个函数:json.dumps():对数据进行编码;json.loads():对数据进行解码。JSON类型与Python类型对应关系:

importjson

#Python字典类型转换为JSON对象

#将JSON对象转换为Python字典

第三方模块

在Python中,安装第三方模块,是通过包管理工具pip完成的。1、安装pip

sudoeasy_installpip

2、比如安装PyMySQL模块来连接数据库,Python3.x:

pip3installPyMySQL

返回:

CollectingPyMySQL

UsingcachedPyMySQL-0.7.11-py2.py3-none-any.whl

Installingcollectedpackages:PyMySQL

SuccessfullyinstalledPyMySQL-0.7.11

升级pip到最新版本

python-mpipinstall--upgradepip

错误和异常

Java中捕获异常是用的trycatchfinally,Python是用的try...except...finally...:

try:

print(int(name))

exceptValueErrorase:#所有的错误类型都继承自BaseException

print(e)

finally:

print('finally')

文件

Python内置了读写文件的函数,一般分为3步:

1、open()函数,打开一个文件对象;

2、调用read()方法读取文件内容;

3、调用close()方法关闭文件。

写文件

桌面新建一个空白Python3Learn.txt文件:

defwrite_file():

try:

f=open('/Users/wuxiaolong/Desktop/Python3Learn.txt','w')#标示符'w'表示写

f.write('Hello,Python')

exceptBaseExceptionase:

print(e)

finally:

iff:

f.close()

读文件

defread_file():

try:

f=open('/Users/wuxiaolong/Desktop/Python3Learn.txt','r')#标示符'r'表示读

#print(f.read())#read()会一次性读取文件的全部内容

print(f.readlines())#每次读取一行内容,返回list

exceptBaseExceptionase:

print(e)

finally:

iff:

f.close()

读取二进制文件

比如图片、视频等等,桌面随便搞张Python3Learn.png:

defread_byte_file():

try:

f=open('/Users/wuxiaolong/Desktop/Python3Learn.png','rb')#标示符'rb'表示读

print(f.read())#read()会一次性读取文件的全部内容

#print(f.readlines())#每次读取一行内容,返回list

exceptBaseExceptionase:

print(e)

finally:

iff:

f.close()

字符编码

encoding参数:读取非UTF-8编码的文本文件;errors参数:遇到编码错误后如何处理,最简单的方式是直接忽略。

f=open('/Users/wuxiaolong/Desktop/Python3Learn.txt','r',encoding='gbk',errors='ignore')

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171211A0YXNM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券