第二章 2.3 Python语言基础
文章目录
- 系列文章目录
- 前言
- 2.3.1 语言语义
- 2.3.1.5 变量和参数传递
- 变量传递
- 参数传递
- 2.3.1.6 动态引用/强类型
- type()函数和isinstance()函数
- format函数
- 2.3.1.7 属性和方法
- getattr() 函数:直接获取属性值
- hasattr() :判断是否含有属性/方法
- setattr() 函数:修改类实例对象中的属性值
- 总结
前言
原书《利用Python进行数据分析》,每周定期更新读书笔记,记录淑芬小白Sab学习的过程,欢迎私聊交流讨论~
2.3.1 语言语义
什么是可变的伪代码?
2.3.1.5 变量和参数传递传递即a把a有的传给b
变量传递定义a后,给a赋予(绑定)一个新的变量b,在python中,a和b实际上是指向了相同的对象(即b=[1,2,3])
代码如下(示例):
a = [1,2,3]
b = a
我们向a后面添加一个元素,来检查b后会发现b=[1,2,3,4]
a.append(4)
b
Out: b=[1,2,3,4]
参数传递
def定义函数,使其在任意一个some_list最后可添加一个element。
定义整数列表data,更换可变参数的内部值,使其在data后添加元素,我们便可得到data=[1,2,3,4]
代码如下(示例):
def append_element(some_list, element):
some_list.append(element)
data = [1, 2, 3]
append_element(data, 4)
print(data)
Out:data=[1,2,3,4]
2.3.1.6 动态引用/强类型
python类似presto在sql中的地位,作为强类型语言,所有的对象都有一个明确的(指定的)类型,比如a=4,a为整型(int)。若不确定可以直接查看类型,或检查对象的类型是否为指定类型:
type()函数和isinstance()函数代码如下(示例):
#查看类型
a = 4
print(type(a))
Out: <class 'int'>
#检查对象类型是否为指定类型
print(isinstance(a, int))
Out: True
除此之外,还可以进行字符串格式化:
format函数a=4.5
b=2
print('a is {0}, b is {1}'. format(type(a),type(b)))
Out: a is <class 'float'>, b is <class 'int'>
print(a/b)
Out: 2.25
2.3.1.7 属性和方法
Python中的对象通常会有属性,Python对象"内部“存储的其他对象;
Python中的对象通常也会有方法,与对象内部对象有关的函数,相关的对象可以连接到对象内部数据。
那如何获取/判断/修改属性与方法?
getattr() 函数:直接获取属性值getattr() 函数获取某类实例对象中指定属性的值,如获取定义类中name的值。
代码如下(示例):
class Lab():
name = 'Sab实验室'
Sab = Lab()
attr_name=getattr(Sab,'name')
print(attr_name)
Out:Sab实验室
hasattr() :判断是否含有属性/方法
hasattr() 函数用来判断某个类实例对象是否包含指定名称的属性或方法,如判断定义类中name的值。
代码如下(示例):
class Lab():
name = 'Sab实验室'
Sab = Lab()
exist_name=hasattr(Sab,'name')
print(exist_name)
Out:True
setattr() 函数:修改类实例对象中的属性值
setattr() 函数用于修改类实例对象中的属性值。
代码如下(示例):
#修改类实例对象中的属性值
def element(self):
print("Sabrina, Casey, and you.")
class Lab:
def __init__(self):
self.name = "Sab实验室"
Sab = Lab()
setattr(Sab,'name','Sabrina_Lab')
print(Sab.name)
Out:Sabrina_Lab
#将类方法修改成一个类属性
setattr(Sab,"name",element)
print(Sab.name(Sab))
Out:Sabrina, Casey, and you.
#为实例对象动态添加属性或者方法
def element(self):
print("Sabrina, Casey, and you.")
class Lab:
pass
Sab = Lab()
setattr(Sab,"name","Sab吃书室")
setattr(Sab,"element",element)
print(Sab.name)
print(Sab.element(Sab))
Out:Sab吃书室
Out:Sabrina, Casey, and you.
总结
本文记录了《利用Python进行数据分析》2.3 python语言基础第一部分的重点内容,下一篇将学习对鸭子类型/二元运算符/比较运算符/可变对象等其他语言语义内容,有问题欢迎指正交流!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)