day31-python作业

一、内置函数isinstance和issubclass。

1.总结python内置函数 isinstance。

isinstance 是python中的内置函数,可以用来判断一个对象是否是已知的内容。

l = list([1, 2, 3])print(type(l))print(isinstance(l, list))print(isinstance(l, tuple))

上面代码会输出下面结果:

<class ‘list‘>
True
False

通过输出结果可以看出来,isinstance可以判断对象‘l’ 的类型是不是‘list’,当判断‘l’的类型是list的时候会输出True,反之就会输出False。

2.总结python内置函数issubclass。

Python的ctypes库中提供了一个接口来查询是不是其个类的子类。

class A:    passclass B(A):    passprint(issubclass(B, A))print(issubclass(A, B))

上面代码会输出下面结果:

True
False

代码中使用issubclass判断类B是否是类A的子类时,输出结果为True,当判断A是否是B的子类时,输出结果是False。

二、反射

1.反射即想到4个内置函数分别为:getattr、hasattr、setattr、delattr  获取成员、检查成员、设置成员、删除成员下面逐一介绍先看例子:

  

class People:    def __init__(self, name):        self.name = name    def walk(self):        print(‘walk‘)
p = People(‘yh‘) #实例化运行下面代码:print(getattr(p, ‘name‘)) #获取成员print(hasattr(p, ‘walk‘)) #检查成员setattr(p, ‘age‘, 18)    #设置成员setattr(p, ‘id‘, 1)print(p.age)delattr(p, ‘id‘)      #删除成员输出结果:

yh
  True
  18

将添加的属性‘id’ 删除,然后在输出会报错:

AttributeError: ‘People‘ object has no attribute ‘id‘

2.反射

(1).根据字符串的形式导入模块。

_import_(‘模块名‘)

或者

import importlib

t = importlib.import_moudle(‘模块名‘)

(2).根据字符串的形式去对象(某个模块)中操作其成员

三、内置attr:__getattr__,__setattr__,__delattr__

__setattr__、__getattr__和__delattr__可以拦截对对象属性的访问。

_getattr_:当一个属性在通常的位置没有被找到的时候会被自动调用(如,一个既不是实例本身的属性,又没有通过self在class tree中找到的属性)。返回属性值或者抛出AttributeError。

_setattr_:当给一个属性设置值的时候会调用的函数。

_setattr_:当删除一个属性的时候会调用。

使用以下代码来演示:

class Foo:    def __init__(self,name):        self.name = name    def __setattr__(self, key, value):        self.__dict__[key] = value    def __delattr__(self, item):        self.__dict__.pop(item)    def __getattr__(self, item):        print(‘%s‘%item)f = Foo(‘yh‘)  #会触发 _setattr_的操作,会将‘name‘:‘yh‘加入到 _dict_中f.age = 18     #会触发_setattr_的操作,会将‘age‘:‘18‘加入到_dict_中del f.age      #会触发_delattr_的操作,会将‘age‘:‘18‘从_dict_中删掉f.ss       #会触发_getattr_的操作,会打印‘ss’

四、定制自己的数据类型:1.继承的方法:
class List(list):    def pop(self, index=None):        if index >5:            raise TypeError("don‘t delete")        else:            super().pop(index)

代码中List类继承了list类,在List类中定义当索引值大于5时,提示不让删除,其它的情况继承list的方法来实现。

2.授权的方式
import timeclass Open:    def __init__(self, file, m=‘r‘, encod=‘utf8‘):

self.file = file        self.mode = m        self.encoding = encod        self.x = open(file, mode=m, encoding=encod)    def write(self,value):        t = time.strftime(‘%Y-%m-%d %X‘)        self.x.write(‘%s %s‘%(t, value))    def __getattr__(self, item):        return getattr(self.x, item)o = Open(‘a‘,‘w‘)o.write(‘1111\n‘)               #触发 write 操作,将当前时间以及‘1111’添加到文件a中r = Open(‘a‘,‘r+‘)print(r.read)                   #触发 _getattr_操作


				
时间: 2024-08-13 09:27:05

day31-python作业的相关文章

Python代写,Python作业代写,代写Python,代做Python(微信leechanx)

Python代写,Python作业代写,代写Python,代做Python(微信leechanx) Redis:Cannot assign requested address的解决办法 客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口,即"Cannot assign requestedaddress".是客户端的问题不是服务器端的问题.通过netstat,的确看到很多TIME_WAIT状态的连接.

代写Python、代做Python、Python作业代写、Python代写(微信leechanx)

代写Python.代做Python.Python作业代写.Python代写(微信leechanx) i++ VS ++i性能区别 i++ 为 function () { tmp = i; i = tmp + 1; return tmp; } ++i 为 function () { i = i + 1; return i; }

python作业:多级菜单

python作业: 要求: 1.三级菜单 2.选择可以依次进入子菜单 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #__author__ = 'Administrator' 4 5 data={ 6 'china':{ 7 'zhejiang':{ 8 '杭州', 9 '宁波', 10 '余姚', 11 '建德', 12 }, 13 'jiangxi':{ 14 '上饶', 15 '南昌', 16 '瑞金', 17 '德兴', 18 '广丰'

Python作业-选课系统

Python作业-选课系统 学习 python Python作业-选课系统 days6作业-选课系统: 1. 程序说明 2. 思路和程序限制 3. 选课系统程序目录结构 4. 测试帐户说明 5. 程序测试过程 days6作业-选课系统: 角色:学校.学员.课程.讲师 作业需求 1.创建北京.上海 2 所学校 2.创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 3.课程包含,周期,价格,通过学校创建课程 4.通过学校创建班级, 班级关联课程.

Python代写,Python作业代写,代写Python,代做Python

Python代写,Python作业代写,代写Python,代做Python 我是一线IT企业程序员,目前接各种代码代写业务: 代写C语言.代做C语言.C语言作业代写.C语言代写 代写C++.代做C++.C++作业代写.C++作业代写 代写Python.代做Python.Python作业代写.Python作业代做 代写Java.代做Java.Java作业代写.Java作业代做 代写编程作业.代做编程.编程代写.编程代做 先写代码再给钱,不要任何定金!价钱公道,具体见图,诚信第一!(涉及图形化界面.

Python作业第一课

零基础开始学习,最近周边的同学们都在学习,我也来试试,嘿嘿,都写下来,下次不记得了还能来看看~~ Python作业第一课1)登陆,三次输入锁定,下次不允许登陆2)设计一个三级菜单,菜单内容可自行定义,任意一级输入q则退出程序,如果输入b则返回上一级 --以上两个题目涉及几个知识点:文档的读取,文档的写入,列表的操作,循环的使用,字符串的一些操作首先回顾一下这几个知识点a)文档的读取,几个常用的f = open("test.log","w")这个w是参数,可换成别的参

spark 集群运行python作业

今天尝试用刚搭建好的spark集群运行python作业,遇到了一些问题,解决了一些坑的同时也对spark集群的运作和配置方式有了一些比较浅的认识,不像之前那么没有概念了,记录如下,之后还要继续更多的对Hadoop生态圈和spark并行计算框架的探究. 首先说下环境,集群有五个节点,集群环境是用cloudera manager 搭建的,hadoop用的是cloudera的CDH,我对CDH和hadoop之间关系的理解就是与linux和CentOS的关系一样,其他的的相关组件例如Hbase和Hive

(转)Python作业day2购物车

Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现),查询余额. 撸了两天一夜的代码,不多说,直接上码,注释神马的后面再说 按 Ctrl+C 复制代码 按 Ctrl+C 复制代码 分类: python作业 标签: 购物车

python 图像归一化作业代码代编程代写图python作业

python 图像归一化作业代码代编程代写图python作业from PIL import Image import os import sys import numpy as np import time from sklearn import svm # 获取指定路径下的所有 .png 文件 def get_file_list(path): return [os.path.join(path, f) for f in os.listdir(path) if f.endswith(".png&

python 作业

Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与寄存器,内核态与用户态及如何切换 存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池 磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU 磁带 设备驱动与控制器 总线与南桥和北桥 操作系统的启动流程 应用程序的启动流程 day02 作业要求一:整理操作系统博客 为何