python中and与or的执行顺序-python之执行顺序随记

python的执行顺序一直都是很令人头疼,简单随记了一些

1、正常顺序执行。

print(1)a = 2l = [3]

这个就不附结果了,都能猜得到,这种按顺序执行,还有像等号双等号这种,都是从右边开始执行,执行等号右边,赋值给等号左边。

2、函数的执行过程

#coding=utf-8

defa():print('is a')defb():

a()print('b use a')defc():

b()print('c use b')defd():

c()print('d use c')

d()

这里面总共定义了4个函数,调用d()时,又用了c(),依次类推,输出结果也就可想而知了。也就是如图

1298472-20190927135419031-1316302577.png

结果:

is a

b use a

c use b

d use c

3、类就比较麻烦了,魔法方法__new__比__init__方法前执行,具体的执行顺序上例子

#coding=utf-8

classA:def __init__(self):print('init a')

param= 1

print(param)classB:def __new__(cls, *args, **kwargs):print('new b')classC:def __init__(self):print('init c')def __new__(cls, *args, **kwargs):print('new c')

A()

B()

C()

猜一下直接运行结果吧先。。。会出现什么呢

哈哈哈,结果就是:

1

init a

new b

new c

得出,自定义变量>魔法方法__new__>__init__方法前执行,我们也发现了,为什么new跟init同时存在,只运行了new,而没打印init呢?

科普一下new:

__new__()用于创建实例,该方法是在实例创建之前被调用,它是类级别的方法,也是静态方法;

科普一下init:

__init__()至少有一个参数self,__new__()返回的实例传给init,也就是传给self,__init__()在__new__()的基础上完成一些初始化的操作。

结果对比:

__new__()必须有返回值,返回实例对象;

__init__()不需要返回值。

__new__必须要有返回值,返回实例化出来的实例,__init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值

如果__new__() 创建的是当前类的实例,会自动调用__init__()函数,通过return调用的__new__()的参数cls来保证是当前类实例,如果是其他类的类名,那么创建返回的是其他类实例,就不会调用当前类的__init__()函数。

想要执行他就需要在new方法下加上 return super(C, cls).__new__(cls)

这里知道的并不是太懂。

4、类中一个运行的小实例

classA:def __init__(self,name):print('A class',A.__class__,name)classB(A):def __init__(self,name):

self.name=name

A.__init__(self,name)print("B class",B.__class__,name)#print('this is B')

classC(B):def __init__(self,name):

B.__init__(self,name)print("c class")

c= C('jery')

这里会怎么执行呢??先猜一下

结果就是

A class jery

B class jery

c class

结合自己理解更加深入了解一下。

总结一下:

1) __new__方法在__init__方法前执行;

2) __new__必须要有返回值,返回实例化出来的实例,实例传给init,然后init再去执行,如果没有实例化的对象,init就不会执行;

3) 函数以及其他遵循一行一行执行。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,可以使用数学库的函数来计算勾股定理。比如,可以使用math模块的sqrt函数来计算平方根。以下是一个使用勾股定理计算直角三角形斜边长度的示例代码: ``` from math import * a = float(input("请输入斜边1的长度:")) b = float(input("请输入斜边2的长度:")) c = sqrt(a*a + b*b) print("斜边长为:", c) ``` 在这个例子,用户需要输入直角三角形的两个直角边的长度,然后通过勾股定理计算出斜边的长度,并将结果输出。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python 基础](https://blog.csdn.net/weixin_34268310/article/details/85888761)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python入门学习随记(二)(勾股定理、球体积、利率、移位和进制转换、数字求和)](https://blog.csdn.net/small_red_cap/article/details/102773406)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值