cls

python全栈开发基础【第十七篇】面向对象反射和内置方法

陌路散爱 提交于 2019-12-30 04:17:57
一、静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静态方法的不同点:   类方法必须有一个cls参数表示这个类,可以使用类属性   静态方法不需要参数 绑定方法:分为普通方法和类方法      普通方法:默认有一个self对象传进来,并且只能被对象调用-------绑定到对象       类方法:默认有一个cls对象传进来,并且可以被类和对象(不推荐)调用-----绑定到类 非绑定方法:静态方法:没有设置默认参数,并且可以被类和对象(不推荐)调用-----非绑定 # staticmethod和classmethod class Student: f = open('student', encoding='utf-8') def __init__(self): pass @classmethod #类方法 :有个默认参数cls,并且可以直接使用类名去 #调用,还可以与类属性交互(也就是可以使用类属性) def show_student_info_class(cls): # f = open('student', encoding='utf

Django Class Based View

本小妞迷上赌 提交于 2019-12-28 09:12:30
本节内容 一 Class Based View 基于类的视图    1. 类的视图 View    2. 类的视图 TemplateView    3. 类的视图 login_required解决方法 二 通用视图    1. 通用视图 - ListView    2. 通用视图 - DetailView    3. 通用视图 - FormView 一 Class Based View 基于类的视图 function view 存在问题,无法继承复用,尤其时框架封装好的类用不了,function组装复用更擅长 class based view 代码更简洁 简单样例 version 1 # urls.py from django.conf.urls import url from mysite import views as my_view urlpatterns = [ url(r'^about/', my_view.about), ] # mysite/views.py from django.shortcuts import render def about(request): return render(request, 'about.html') 基本的function based view version 2 # urls.py from django.views

python面试题

喜夏-厌秋 提交于 2019-12-28 03:52:36
首页 代码 文档 问答 资讯 经验 GitHub日报 | 安卓开发专栏 | 开发者周刊 | Android Studio 使用推荐 | Android开发推荐 登录 注册 www.open-open.com/lib OPEN经验 投稿 全部经验分类 Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim C++ C# JSON Ruby Linux Nginx Docker 所有分类 > 开发语言与工具 > Python开发 关于Python的面试题 Python 2016-01-25 11:02:47 发布 您的评价 : 5.0 收藏 3收藏 来自: https://github.com/taizilongxu/interview_python?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io Table of Contents Python语言特性 1 Python的函数参数传递 2 Python中的元类(metaclass) 3 @staticmethod和@classmethod 4 类变量和实例变量 5 Python自省 6 字典推导式 7

演示python如何创建和使用一个简单的元类的代码

这一生的挚爱 提交于 2019-12-27 21:50:21
在做工程闲暇时间,将做工程过程比较重要的一些内容备份一下,如下内容段是关于演示python如何创建和使用一个简单的元类的内容,应该能对小伙伴们也有用途。 #!/usr/bin/env python # [SNIPPET_NAME: Simple metaclass] # [SNIPPET_CATEGORIES: Python Core] # [SNIPPET_DESCRIPTION: Shows how to create a and use a simple metaclass] # [SNIPPET_AUTHOR: Florian Diesch <diesch@spamfence.net>] # [SNIPPET_LICENSE: MIT] # Copyright 2010 Florian Diesch <diesch@spamfence.net> # All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without

剑·途 V1.3

别说谁变了你拦得住时间么 提交于 2019-12-27 06:38:45
//程序名:新的C++程序 //作者: #include<iostream> #include<fstream> #include<algorithm> #include<bits/stdc++.h> #include<windows.h> #define PN a[0].name #define PL a[0].level #define PK a[0].kill #define PF a[0].fy #define PS a[0].sudu #define PJ a[0].jineng #define PM a[0].money #define PZ a[0].zhuangbei #define PB a[0].blood #define PBJ a[0].baoji #define PX a[0].xixue #define PE a[0].ex #define PSB a[0].shanbi using namespace std; struct player { string name; int shanbi,level,blood,kill,fy,sudu,jineng[5],jns,money,zhuangbei[7],zbs,baoji,xixue,ex; }a[1]; string boss_name[120]={"御宝司","梨将","六灵","巫师",

基础算法 | 决策树(ID3、C4.5和CART决策树python实现)

梦想的初衷 提交于 2019-12-25 10:57:47
决策树(Decision Tree)是一种基于规则的基础而又经典的分类与回归方法,其模型结构呈现树形结构,可认为是一组if-then规则的集合。 决策树主要包含三个步骤:特征选择、决策树构建和决策树剪枝。 典型的决策树有ID3、C4.5和CART(Classification And Regression),它们的主要区别在于树的结构与构造算法。其中ID3和C4.5只支持分类,而CART支持分类和回归。 1.决策树简介 1.1. ID3决策树 ID3决策树根据信息增益来构建决策树; 对训练集(或子集) D ,计算其每个特征的信息增益,并比较大小,选择信息增益最大的特征作为该节点的特征,由该节点的不同取值建立子节点。再对子节点递归以上步骤,构建决策树;直到所有特征的信息增益均小于预设阈值或没有特征为止。 缺点: 信息增益偏向取值较多的特征 g ( D , A ) = H ( D ) − H ( D ∣ A ) = H ( D ) − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D ) = H ( D ) − ( − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ ∑ k = 1 k ∣ D i k ∣ ∣ D i ∣ l o g 2 ∣ D i k ∣ ∣ D i ∣ ) g(D,A)=H(D)-H(D|A)=H(D)-\sum_{i=1}^{n}\frac{\left

CLR基础之一---认识CLR [《CLR via C#》读书笔记]

情到浓时终转凉″ 提交于 2019-12-24 23:05:10
《CLR via C#》读书笔记 什么是CLR CLR的基本概念 通用语言运行平台(Common Language Runtime,简称CLR)是微软为他们的.Net虚拟机所选用的名称。这是通用语言架构(简称CLI)的微软实现版本,它定义了一个代码运行的环境。CLR运行一种称为“通用中间语言”的字节码,这个是微软的通用中间语言实现版本。 CLR运行在微软的视窗操作系统上。查看通用语言架构可以找到该规格的实现版本列表。其中有一些版本是运行在非Windows的操作系统中。(维基百科CLR) 以上定义至少包含以下几点信息: CLR是一个类似于JVM的虚拟机,为微软的.Net产品提供运行环境。 CLR上实际运行的并不是我们通常所用的编程语言(例如C#、VB等),而是一种字节码形态的“中间语言”。这意味着只要能将代码编译成这种特定的“中间语言”(MSIL),任何语言的产品都能运行在CLR上。 CLR通常被运行在Windows系统上,但是也有一些非Windows的版本。这意味着.Net也很容易实现“跨平台”。(至于为什么大家的印象中.Net的跨平台性不如Java,更多的是微软商业战略导致的) CLR和.Net Framework的关系 .NET框架 (.NET Framework) 是由微软开发,一个致力于敏捷软件开发(Agile software development)、快速应用开发

深度解析并实现python中的super(转载,好文)

本秂侑毒 提交于 2019-12-24 19:10:43
大神半个月的成绩,让我看的叹为观止,建议看原帖地址,会让你对Python的描述符有更强的认识。 原文链接:https://blog.csdn.net/zhangjg_blog/article/details/83033210 深度解析并实现python中的super 概述 super的定义 函数bound和描述器 super的典型用法 super的本质 自定义super python中对super的实现 写在最后 概述 python中的super是一个神奇的存在。本文对python中的super进行深入的讲解,首先说明super的定义,并列举一下super的典型用法,然后会对和super相关的语言特性进行讲解,比如mro(方法解析顺序),descriptor描述器,函数绑定,最后尝试自己动手实现一个super,并简单探索一下python中对super的实现。 super的定义 首先看一下super的定义,当然是help(super)看一下文档介绍: Help on class super in module builtins: class super(object) | super() -> same as super(__class__, <first argument>) | super(type) -> unbound super object | super(type,

设计模式来替代if-else

旧巷老猫 提交于 2019-12-24 12:15:27
前言 # 物流行业中,通常会涉及到EDI报文(XML格式文件)传输和回执接收,每发送一份EDI报文,后续都会收到与之关联的回执(标识该数据在第三方系统中的流转状态)。这里枚举几种回执类型: MT1101、MT2101、MT4101、MT8104、MT8105、MT9999 ,系统在收到不同的回执报文后,会执行对应的业务逻辑处理。当然,实际业务场景并没有那么笼统,这里以 回执处理为演示案例 模拟一个回执类 Copy ``@Data public class Receipt { /** * 回执信息 */ String message; /** * 回执类型(`MT1101、MT2101、MT4101、MT8104、MT8105、MT9999`) */ String type; }`` 模拟一个回执生成器 Copy `public class ReceiptBuilder { public static List<Receipt> generateReceiptList(){ //直接模拟一堆回执对象 List<Receipt> receiptList = new ArrayList<>(); receiptList.add(new Receipt("我是MT2101回执喔","MT2101")); receiptList.add(new Receipt("我是MT1101回执喔",

__new__ __init__区别

被刻印的时光 ゝ 提交于 2019-12-22 08:27:43
1 class A(object): 2 def __init__(self,*args, **kwargs): 3 print "init A" 4 def __new__(cls,*args, **kwargs): 5 print "new A %s"%cls 6      #return super(A, cls).__new__(cls, *args, **kwargs) 7 return object.__new__(cls, *args, **kwargs) 说明 1、继承自object的新式类才有__new__ 2、__new__至少要有一个参数cls,代表当前类,此参数在实例化时由Python解释器自动识别 3、__new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以return父类(通过super(当前类名, cls))__new__出来的实例,或者直接是object的__new__出来的实例 4、__init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值 5、如果__new__创建的是当前类的实例,会自动调用__init__函数,通过return语句里面调用的__new_