一、Self用法:
首先我们要了解self的定义,即类实例化后,它代表着实例本身。而且我们知道python的类是不能直接使用的,只能通过创建实例。每个实例都是独特的独一无二的,它可以调用类的属性和方法等。类就是让实例对象有了self的功能。
类的方法(构造方法和实例方法)中都会有一个固定参数self,其实这个参数就是代表着实例本身,就像是一个ID card,实例可以凭着身份证去调用类方法。
当某个实例调用类方法时,该对象会把自身的引用作为第一个参数自动传给该方法,而这第一个参数就是self。
如下有一个School类:
class School:
# 构造方法
def __init__(self, name):
self.exam_results = None
self.name = name
# 实例方法
def study(self, exam_results):
self.exam_results = exam_results
print("学校{}得分为{}".format(self.name, self.exam_results))
print("该实例对象的地址是{}".format(self))
# 实例school_1
student_a = School('school_1')
print(student_a.name)
结果输出:school_1
再来一个实例school_2:
可以看出实例不同,打印的结果也不同当类被实例化后,self.name其实就等于实例本身。
以刚刚的代码为例,我们再来调用里面的实例方法:
输出结果为:学校school_1得分为90
该实例对象的地址是<__main__.School object at 0x000002C351A796D8>
实例school_2:
输出结果为:学校school_2得分为80
该实例对象的地址是<__main__.School object at 0x0000021201E196D8>
如图看到两个实例打印出的self是不一样的,因为self代表着实例(对象)本身。
二、__init__()用法:
Python中的__init__()函数的作用是实现类的每个变量申请内存空间并付初值,是一个初始化的方法。
在系统申请内存空间,__init__为类的每个变量申请内存空间并付初值,一些时候我们会说他是构造函数。在创建类的时候,我们是不需要使用init的,因为它只是一个初始化的方法,只能作为点缀在语言中使用。
两个下划线开头的函数是声明该属性为私有,不能在类的外部被使用或访问。而__init__函数(方法)支持带参数类的初始化,也可为声明该类的属性(类中的变量)。__init__函数(方法)的第一个参数必须为self,后续参数为自己定义。
我们定义一个Grass类,有width, height两个属性,以及计算面积的方法:
class Grass:
def __init__(self):
self.height = None
self.width = None
def setData(self, width, height):
self.width = width
self.height = height
def getArea(self):
return self.width * self.height
b = Grass()
b.setData(10, 20)
print("草地面积为:", b.getArea())
我们在Grass类中定义了setDate方法去设定该Grass的属性,这样过于繁琐,而用__init__()这个特殊的方法就可以方便地自己对类的属性进行定义,__init__()方法又被称为构造器。
class Grass:
# def setData(self, width, height):
# self.width = width
# self.height = height
def __init__(self, width, height):
self.width = width
self.height = height
def getArea(self):
return self.width * self.height
b = Grass(10, 20)
print("草地面积为:", b.getArea())
三、调用函数:
python调用函数分为多种函数,可以是自己创建的,可以是python自带的,也可以是第三方库里面的函数。
函数调用的基本语法格式如下所示:
[返回值] = 函数名([形参值])
(1)
def test():
print("the test is fine!")
test()
# 新建一个函数,直接用函数名加括号就可以调用函数
(2)
def test(num):
print("The number is %d." %(num))
test(888) #如果有参数设置,调用函数的时候记得要填入参数,不然会报错。
(3)
from test import test
test(999)
#在同一个文件夹底下新建一个PY文档,并且用from import来调用刚刚创建的函数。
(4)
def test(num):
print("The number is %f." %(num))
import math
test(math.pi
#还会经常用到的是调用python自带的函数,要用import来引入。
(5)
print(int("888"))
#当然还有一些不需要用import来导入的,比如print()函数就可以直接使用。
(6)
import requests
result = requests.get("")
print(result)
#还有一种情况就是第三方库,这一类都要先安装才能进行导入。