python3(一) 类与函数的定义、使用
秋招结束,期间一直采用java刷题,python的熟练程度下降,因此决定重新捡回python。
一、类的定义
参考了:https://blog.csdn.net/weixin_44831484/article/details/90339650
1 class Person: 2 def __init__(self, xName, xAge): 3 self.name = xName 4 self.age = xAge 5 #能否重载 6 def printPeson1(self,tmp): 7 print("My name is {}, My age is {} and sex is {}".format(self.name,self.age,tmp)) 8 def printPeson2(self): 9 print("My name is {}, My age is {}".format(self.name,self.age)) 10 11 #实例化类 12 person = Person('lily',22) 13 #调用类成员函数,有参,无参 14 person.printPeson1('felman') 15 person.printPeson2() 16
总结:
1.class小写,类名Person首字母大写
2.无花括号{},用冒号:
3.实例化时无new,直接类名(),Person()。括号中的参数与初始化函数__init__()中传入的一致
二、初始化函数__init__()与self
参考了 https://www.cnblogs.com/ant-colonies/p/6718388.html
__init__(): 为类的初始化函数,在java中类名(),Person(){}为初始化函数。在实例化对象时,会调用初始化函数,传入参数。所以是实例化时,传入的参数与初始化函数的参数一致。
public class Person{ String name; int age; //初始化函数 Person(String xName, int xAge){ // name = xName; // age = xAge; // 也可以写成: this.name = xName; this.age = xAge; } }
python类中的self与Java类中的this是类似的,代表该类当前对象。
在类的代码(函数)中,需要访问当前的实例中的变量和函数的,即,访问Instance中的:
-
对应的变量(属性,property):Instance.ProperyNam,去读取之前的值和写入新的值
-
调用对应函数(function):Instance.function(),即执行对应的动作
-> 而需要访问实例的变量和调用实例的函数,当然需要对应的实例Instance对象本身
-> 而Python中就规定好了,成员函数的第一个参数,就必须是实例对象本身,并且建议,约定俗成,把其名字写为self
-> 所以,我们需要self(需要用到self)
而如果没有用到self,即代码中,去掉self后,那种写法所使用到的变量,实际上不是你所希望的,不是真正的实例中的变量和函数,而是的访问到了其他部分的变量和函数了。甚至会由于没有合适的初始化实例变量,而导致后续无法访问的错误。

浙公网安备 33010602011771号