一等公民

只要可以把一个东西赋值给一个变量,这个东西就叫一等公民

断点调试

在想要加断点的地方用鼠标点击一下,你会看到一个红色圆圈

变红的地方,程序执行到,就会暂停

断电应该加载报错之前

绿色箭头表示加速跳到下一个断点执行

控制台报错:点击你能看懂的最后一行,光标会快速定位到错误代码,在错误代码上方加断点,断点调试

issubclass和isinstance

issubclass:判断第一个类是不是第二个类的子类,返回true或者false

issubclass()
class Foo():
pass
class Bar(Foo):
pass
class Tt(Bar):
pass
print(Bar.__bases__)
print(issubclass(Bar,Foo))
print(issubclass(Tt,object))

ininstance:判断第一个参数是不是第二个参数的对象,返回true或者false

class Foo():
pass
class Tt():
pass
f=Foo()
print(isinstance(f,Foo))
print(isinstance(f,Tt))

反射

用户输入一段字符串,执行该字符串对应的方法

hasatter():判断一个属性是否在对象中,返回True或者False

class People:
country='China'
def __init__(self,name):
self.name=name def eat(self):
print('%s is eating'% self.name)
peo=People('NICK')
print(hasattr(peo,'eat'))

getattr():通过字符串获取属性或方法,如果获取到了,就会返回相应的属性或方法

class People:
country='China'
def __init__(self,name):
self.name=name def eat(self):
print('%s is eating'% self.name)
peo=People('NICK')
print(getattr(peo,'xxxx',None))

setattr():通过字符串来设置属性或方法

class People:
country='China'
def __init__(self,name):
self.name=name def eat(self):
print('%s is eating'% self.name)
peo=People('NICK')
setattr(peo,'age',18)
print(peo.age)

delattr():通过字符串来设置属性或方法

class People:
country='China'
def __init__(self,name):
self.name=name def eat(self):
print('%s is eating'% self.name)
peo=People('NICK')
delattr(peo,'name')
print(peo.__dict__)

内置方法

_str_:如果不重写__str__ ,print打印出内存地址,如果重写了,会打印出你想要的

_repr_:跟str类似,在交互式命令下直接写变量名,会执行__repr__

__setattr__,__delattr__,__getattr__
点拦截方法
如果去对象中去属性,一旦取不到,会进入到__getattr__
如果去对象中赋值属性,一旦取不到,会进入__setattr__
如果删除对象中的属性,会进入到__delattr__

写一个类继承字典,让它可以.取值,可以中括号取值

class Mydict(dict):
def __init__(self,**kwargs):
super().__init__(**kwargs)
def__getattr__(self,item):
return self[item]
def __setattr__(self,key,value):
self[key]=value di=Mydict(name='lzs',age=18)
print(di['name'])
print(di.name)
di.sex='male'
di['sex']='male'

_item_系列,对象通过[]中括号取值,赋值,删除值的时候会调用

class Foo:
def __init__(self,name)
self.name=name
def __getitem_(self,item):
name=getattr(self,item)
return name
def __setitem__(self,key,value):
print('obj[key]=lzs赋值时,执行我')
self.__dict__[key]=value
def __delitem__(self,key):
print('del obj[key]时,执行我')
self.__dict__.pop(key)
f=Foo('lzs')
print(f['name'])

_call_:对象加括号会调用它

class Foo():
def __call__(self):
print('lllll')
f=Foo()
f()

_enter_和__exit__:上下文管理器

with open() as f:
pass class Mydict():
def__getattr__(self,item):
print('xxxx')
return '该属性不存在'
m=Mydict()

断点调试,issubclass和ininstance的使用的更多相关文章

  1. issubclass 和 isinstance和断点调试

    issubclass 和 isinstance和断点调试 一.issubclass 判断第一个类是不是第二个类的子类,返回True或Flase class Foo: pass class Bar(Fo ...

  2. PhpStorm集成xdebug进行断点调试

    本文介绍如何使用PhpStorm集成xdebug在本地开发环境进行断点调试的技巧. 我配置的环境是:Windows10 + PhpStorm10.0.1 + PHP5.6. 1. 下载xdebug的扩 ...

  3. PyCharm断点调试django

    我在用PyCharm开发django程序的时候,对于打印日志调试程序的方式感觉还是有点麻烦和不直观,所以研究了一下断点调试的方法如下: 1.打开你的工程,在菜单栏里找到Run-->Edit Co ...

  4. netbeans-xdebug 断点调试php

    来自NetBeans官网的帮助文档: https://netbeans.org/kb/docs/php/debugging_zh_CN.html 但具体问题,我们还是要说下 准备工作 本地部署的ser ...

  5. Drools mvel方言drl断点调试方法

    开发环境:myeclipse2014,  jdk1.8.0.91,drools6.4.0.Final, drools-eclipse-plugin,mvel2-2.2.6.Final问题描述:drl使 ...

  6. Eclipse断点调试

    转自:http://blog.csdn.net/maritimesun/article/details/7815903 作为开发人员,掌握开发环境下的调试技巧十分有必要.去年就想把关于Eclipse断 ...

  7. js断点调试心得

    虽然网上已经有多的数不清的调试教程了,但仍然没有发现哪篇文章写的通俗易懂,索性自己尝试写写自己的一些使用习惯或者说是心得,希望对那些还不是很懂得使用断点调试的孩子有一些帮助(大神请无视~). 1.断点 ...

  8. chrome developer tool—— 断点调试篇

    断点,调试器的功能之一,可以让程序中断在需要的地方,从而方便其分析.也可以在一次调试中设置断点,下一次只需让程序自动运行到设置断点位置,便可在上次设置断点的位置中断下来,极大的方便了操作,同时节省了时 ...

  9. .NET C#微信公众号开发远程断点调试(本地远程调试生产环境代码)

    最近在做微信公众号开发,由于之前没有接触过,突然发现调试不方便,不方便进行断点跟踪调试.因为微信那边绑定的服务器地址必须是公网地址,但是还是想进行断点调试(毕竟这样太方便了,程序有Bug,一步步断点跟 ...

随机推荐

  1. 【剑指Offer】44、翻转单词顺序列

    题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,“student ...

  2. Spring域属性自动注入byName和byType

    byName 方式 <!--byName约束:bean当中的域属性名必须跟所注入bean的id相同--> <bean id="student" class=&qu ...

  3. netcore 添加swagger

    1.添加相应的nuget包  2.配置服务和swaggerui startup.cs 中 configureServices 中添加下面代码: //swagger services.AddSwagge ...

  4. C语言面试题22. 链表中倒数第k个节点

    要求:输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5.6. ...

  5. Django---Django初始

    现在测试行业慢慢的也需要存在代码能力了,从以前的点点点到通过工具进行测试接口,到目前的自动化测试,需要测试会代码的越来越多了.慢慢的测试开发这一行业出现在我们的面前,测试不仅仅会点点,还能自己帮助开发 ...

  6. Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) C Messy

    //因为可以反转n次 所以可以得到任何可以构成的序列 #include<iostream> #include<string> #include<vector> us ...

  7. dev、test、pre和prod是什么意思?

      开发环境(dev):开发环境是程序猿们专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告.   测试环境(test):一般是克隆一份生产环境的配置,一个程序在测试环境工 ...

  8. 题解【AcWing275】[NOIP2008]传纸条

    题面 首先有一个比较明显的状态设计:设 \(dp_{x1,y1,x2,y2}\) 表示第一条路线走到 \((x1,y1)\) ,第二条路线走到 \((x2,y2)\) 的路径上的数的和的最大值. 这个 ...

  9. video.js 后端网页播放器

    参考链接: https://www.cnblogs.com/afrog/p/6689179.html VideoJS的CSS样式,这里我提供一下BootCdn的链接 cdn.bootcss.com/v ...

  10. python3 读取串口数据

    python3 读取串口数据 demo import serial import time ser = serial.Serial("COM3",115200,timeout = ...