Python学习-Day5-函数(二)

本文探讨Python中的函数,包括它们作为对象的特性、变量作用域(全局与局部)、参数传递的细节(可变与不可变对象的区别)、拷贝类型(浅拷贝与深拷贝)、不同类型的参数以及递归函数的应用,如计算阶乘。重点解析了参数传递时如何影响对象及其引用,以及如何通过lambda表达式和eval()函数增强函数的使用。
摘要由CSDN通过智能技术生成

函数也是对象,内存底层分析

def test01():
    print("Man")
test01()
c = test01
c()

Man
Man

变量的作用域(全局变量和局部变量)

在这里插入图片描述

a = 3
def test01():
    b = 4
    print(b)
    a = 300
    print(a)
test01()
print(b)
print(a)

Traceback (most recent call last):
  File "C:/Users/admin/PycharmProjects/turtle/test.py", line 8, in <module>
    print(b)
NameError: name 'b' is not defined
4
300

在这里插入图片描述
print(locals()) 打印输出的局部变量

局部变量和全局变量效率测试

在这里插入图片描述
在这里插入图片描述

参数的传递

从实参到形参的赋值操作。
对可变对象进行写操作,直接作用于原对象本身。
对不可变对象进行写操作,会产生一个新的对象空间,并用新的值填充这块空间。
可变对象:字典、列表、集合、自定义的对象等。
不可变对象:数字、字符串、元组、function等

传递可变对象的引用

传递参数是可变对象,实际传递的还是对象的引用。

a = [10,20]
print(id(a))
print(a)
def test01(m):
    print(id(m))
    m.append(300)
    print(id(m))
test01(a)
print(a)

1780838125960
[10, 20]
1780838125960
1780838125960
[10, 20, 300]

传递不可变对象的引用

参数是不可变对象,实际传递的还是对象的引用。在赋值操作时,由于不可变对象无法修改,系统会新创建一个对象。

a = 100
def f1(n):
    print("n:",id(n))
    n=n+200
    print("n:",id(n))
    print(n)
f1(a)
print("a",id(a))

n: 140713297817072
n: 1785365939024
300
a 140713297817072

浅拷贝和深拷贝

copy()、deepcopy()
浅拷贝:不拷贝子对象的内容,只拷贝子对象的引用。
深拷贝:会连子对象的内存全部拷贝,对子对象的修改不会影响原对象。

#浅拷贝
import copy
a = [
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,可以使用atrader库来进行PB-ROE选股。首先,需要导入必要的库,如numpy、pandas和atrader。然后,可以设置一些必要的配置,如关闭控制台系统警告。接下来,使用atrader库中的get_code_list函数来获取沪深300的成分股代码。 接着,可以使用atrader库中的get_factor_by_day函数来获取股票的PB和ROE数据。需要传入factor_list参数指定要获取的因子,这里是['PB', 'ROE'];target_list参数指定要获取数据的股票代码列表,这里是沪深300的成分股代码;date参数指定获取数据的日期,这里是'2019-08-30'。获取的数据可以用DataFrame进行存储和处理。 PB-ROE提供了一种投资的框架,即股票的PB和ROE之间存在近似的线性关系。根据这个框架,可以选择位于回归线下方的股票作为投资对象,因为它们的PB被低估,未来有上升修复的空间。而位于回归线上方的股票则被认为是PB被高估,未来可能下降。因此,通过使用PB-ROE选股策略,可以选择具有较好投资潜力的股票。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python线性回归 多因子模型选股思路](https://blog.csdn.net/qq_18668137/article/details/105144670)[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: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值