一等公民

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

断点调试

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

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

断电应该加载报错之前

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

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

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. 题解【洛谷P2679】[NOIP2015]子串

    题面 看到求方案数,还要对 \(1000000007\ (1e9+7)\) 取模,一般这样的问题都要考虑 动态规划. 我们设 \(dp_{i,j,k,0/1}\) 表示 \(A_{1\dots i}\ ...

  2. shell变量内字符替换和变量字符修改

    vi test.sh a= #将${a}里的第一个123替换为321 b=${a//}; echo "echo variable a" echo $a echo "ech ...

  3. JS使用知识点理解

    var keyValue = $.request("keyValue"); $(function () { ////修改页面select下拉选框js $("#BloodB ...

  4. springBoot 发送邮件图片不显示

    解决方案 MimeMessageHelper 的执行顺序错了,先执行 setText() 然后执行 addInline() 添加图片 <img src="cid:p03"/& ...

  5. Attention machenism

    from attention mechanism Attention is one component of a network’s architecture, and is in charge of ...

  6. 理解 Oracle 多租户体系中(12c,18c,19c)Grant授权作用域范围

    本篇探讨以下几个问题:你可提前猜测下面6个场景语句中,哪几个授权可以成功执行? 1. 在CDB级别中对用户进行授权,不带 container 子句的效果: 2. 在CDB级别中对用户进行授权,带 co ...

  7. [CodeIgniter4]故障排除和本地开发服务器

    故障排除 以下是一些常见的安装问题,以及建议的解决方法. 我必须在我的URL中包含index.php 如果``/mypage/find/apple``类似的URL``/index.php/mypage ...

  8. AcWing 12. 背包问题求具体方案

    //f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+w[i]) #include <iostream> using namespace std; ; int n, ...

  9. JavaScript 引擎基础:Shapes 和 Inline Caches

    JavaScript 引擎基础:Shapes 和 Inline Caches hijiangtao ​ 中国科学院大学 计算机应用技术硕士 260 人赞同了该文章 前言:本文也可以被称做 “JavaS ...

  10. PLSQL无法连接(不存在或找不到oci.dll)

    问题说明:新系统安装plsql后,连接不上Oracle,连接时出现过两种报错 1.找不到OCI.dll文件 2.不能初始化OCI.dll文件,即OCI.dll文件错误 解决方案 plsql连接Orac ...