python学习随笔6

今天来谈一谈关于类的内容。在开始之前先简单的了解一下类,类对象以及实力对象的区别。个人觉得一句话还是很有道理的,python无处不对象。下面看一张图。类对象实际为类定义完成的产物
说明一下图一就是一个错误的例子,但是结构上是没哟问题的,这是为了引出下面的问题,提示:图一会报NameError: name ‘a_x’ is not defined错误 。很明显在init中没有定义a_x 与b_x
在这里插入图片描述
从上面的那张图中可以发现,我们所说的类应该是包含属性(变量)和方法(函数),但是上图中并没有体现出这两者。但我个人觉得def__init__(self)就是属性的一种变形式,虽然图中写的是:实质为方法,人家确实就是函数嘛!然而这时我个人目前的理解。为什么这么理解呢,我给出了一下是两个理由:

1、init通常是用来定义一些变量的初始化值,属性不就是变量吗?

2、init定义变量时,需要赋初值,这里的初值指的是在def那一行中给值,初值数量定义变量数少一个,少的就是那个self。如def init(self,a =0 , b= 0, c = 0),这边定义了a, b, c 三个变量,那么在‘方法体’内也需要定义三个变量,定义的形式为 self.a = a。为什么只这种形式呢?我的理解是:在程序跑起来是,init是自动被加载的,所以在实例化对象的时候需要赋初值,而这个值就是通过参数a传递给self.a,在之后的方法中就可以使用self.a这个参数。看下面一张图关于参数传递过程:

在这里插入图片描述

如果在理由2中定义的三个变量但是都没有给赋初值或赋值的数量不够多,就会出现TypeError: init() takes 1 positional argument but 3 were given。大概的意思就是init中需要给三个初值,你给的不够呗

然而还存在一个问题,什么问题。self.a我该怎么去用它呢?我们定义了self.a肯定是要使用的。下面我们就来聊一聊关于参数的使用。
初学者看教程的时候都觉得这不很简单,这有什么讲。但是对于我这种编程菜鸟我觉得还是有必要记录一下,哈哈。相信不少初学者听说这个init功能很强大,所以总想着在自己的程序里面也使用,提高程序的逼格,反正我就是怎么想的。

刚开始的时候最容易出现的问题就是,使用了init发现即使我怎么改变init之后的方法(定义的函数)发现在init中定义的参数值就是原始定义的,怎么都不变。顿时不想要高逼格的init了。**出现这个问题是主要是因为你在实例化对象的时候参数没有给值,所以你在init中的所给定的参数值会雷打不动,如def init(self.a =0 , b= 0, c = 0)它的a, b, c永远都是0,如果你 xx = xxxx(1, 2, 3),此时你的self.a = 1, self.b = 2, self.c = 3。**简单说明一下,xx表示实力对象名称,xxx表示类名称。此时你的self.a = 1, self.b = 2, self.c = 3就会随着编译的顺序往下传。**也就是说你要改变self.a, self.b, self.c 的值,你必须每次都得xx = xxxx(1, 2, 3)这种形式去做。**如下图所示:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]中的代码,可以使用xlwings库中的range属性来获取Excel表格中的行数。具体的代码如下所示: ```python import xlwings as xw wb = xw.Book(r'F:\xlwings\OriginalData.xlsx') sht = wb.sheets\[0\] info = sht.used_range nrows = info.last_cell.row print(nrows) ``` 其中,`nrows`变量即为Excel表格中的行数。 另外,根据引用\[3\]中的代码,可以使用xlwings的range属性来设置行高。具体的代码如下所示: ```python import xlwings as excel excelApp = excel.App(False, False) excelFile = excelApp.books.add() sheet = excelFile.sheets.add('test') sheet.range('A1').row_height = 20 # 将行高设置为20像素 excelFile.save(r"c:\temp\csdn\test.xlsx") excelFile.close() excelApp.quit() ``` 在这个例子中,`sheet.range('A1').row_height = 20`将A1单元格的行高设置为20像素。 #### 引用[.reference_title] - *1* [xlwings——Python for Excel——xlwings如何获取有数据的所有行数和列数](https://blog.csdn.net/qq_31989047/article/details/103318044)[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^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法](https://blog.csdn.net/LaoYuanPython/article/details/107131574)[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^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值