学习笔记《利用Python进行数据分析》Python语言基础 part1:变量属性类型转换

学习笔记《利用Python进行数据分析》Python语言基础 part1:变量属性类型转换,第1张

系列文章目录

第二章 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语言基础第一部分的重点内容,下一篇将学习对鸭子类型/二元运算符/比较运算符/可变对象等其他语言语义内容,有问题欢迎指正交流!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/916865.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存