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后,那种写法所使用到的变量,实际上不是你所希望的,不是真正的实例中的变量和函数,而是的访问到了其他部分的变量和函数了。甚至会由于没有合适的初始化实例变量,而导致后续无法访问的错误。

posted @ 2020-10-27 15:54  随温  阅读(709)  评论(0)    收藏  举报