人总应该热爱点什么
Object Oriented Programming(OOP) 这个词是python 中面向对象的概念 面向对象是通过类的方式来实现,也就是class。 在说类之前,想想模块的的概念,之前的文章中提到,我们经常会导入一个模块,比如numpy模块、pandas模块,其实模块类似于一个字典,不知道字典的话,回去看看之前的文章,我们在提取字典中的内容的时候,一般使用如下的方式
name={"wo":"sunqi"}
print(name["wo"])
sunqi
现在想想模块,在使用numpy中一般是import numpy as np 现在我们自己建立一个模块,名字叫做sss.py,将这个文件保存在你目前的工作目录下,文件内的内容如下
def name():
print("sunqi")
一旦建立了这个文件,那么我们就可以在新的py文件中,通过import进行导入
import sss
sss.name()
sunqi
这种是模块方式的应用,同时我们也可以在sss文件中加入其它的内容,不止于函数,比如变量
def name():
print("sunqi")
shuo = "life is hard"
# 也可以使用这种方式导入模块中的内容
import sss
sss.name()
print(sss.said)
sunqi
life is hard
其实上述的内容都是实现的一个东西,无论是字典还是模块都是从关键字中提取想要的值
class整合一组函数和数据,通过组合一组数据和函数,并通过点。来进行访问 那么对于上述的例子就可以通过下面的方式进行
class sss(object):
def __init__(self):
self.said = "life is hard"
def name(self):
print("sunqi")
这个类包含了俩个部分,其中一个是init部分,一个是函数部分,使用类,相比较模块来说,它具有一定的复制性,也就是可以根据这一个类生成无数个对象,在调用这个类之前,需要了解一个词叫做实例化,当实例化一个类的时候,得到的东西就是对象
thing = sss()
thing.name()
print(thing.said)
sunqi
life is hard
# 建立类
class food(object):
def __init__(self,xihuan):
self.xihuan = xihuan
def i_like_food(self):
for f in self.xihuan:
print(f)
# 实例化类
shuiguo = food(["apple","banana"])
# 实例化类
drink = food(["guozhi","pijiu"])
# 调用实例化函数
shuiguo.i_like_food()
drink.i_like_food()
apple
banana
guozhi
pijiu
面向对象中的一些术语
类(class):告诉 Python 创建一个新类型的东西
对象(object):实实在在的对象,但是不能结婚
def :你如何在类里面定义一个函数
self :被访问的对象的一个变量
继承(inheritance):于一个类能从另一个类那里继承它的特征的概念
组合(composition) :一个类可以由其他一些类构成
属性(attribute) :就是变量
面向对象,先从对象开始
love&peace