1.面向对象概述
面向对象将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程
面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。 这种方法把软件系统中相近相似的操作逻辑和操作 应用数据、状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。
2.类和对象
<1>类(class):
就是对一类事物的描述,是抽象的,是概念上的定义.
<2>对象(object):
就是该类事物存在的个体(对象),也叫实例(instance)
<3>定义类
class 类名:
方法列表
如:
class A:
def f(self):
print('hello')
4.创建对象
对象名 = 类名()
如:
a = A()
#调用方法
a.f()
#添加属性
a.j = 12
注: 所谓的self,可以理解为自己,就是对象自身的意思
某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可
3.init()方法
类中有一个名为 __init__() 的特殊方法(即构造方法),该方法在类实例化时会自动调用。可以用作初始化操作
def 类名:
def __init__(self)::
pass
4.str()方法
当使用print输出对象的时候,只要自己定义了**str(self)**方法,那么就会打印从在这个方法中return的数据
5.del()方法
创建对象后,python解释器默认调用__init__()方法;
当删除一个对象时,python解释器也会默认调用一个方法,这个方法为__del__()方法(析构方法)
import time
class Animal(object):
# 初始化方法
# 创建完对象后会自动被调用
def __init__(self, name):
print('__init__方法被调用')
self.__name = name
# 析构方法
# 当对象被删除时,会自动被调用
def __del__(self):
print("__del__方法被调用")
print("%s对象马上被干掉了..."%self.__name)
# 创建对象
dog = Animal("哈皮狗")
print("程序2秒钟后结束")
time.sleep(2)
# 删除对象
del dog
cat = Animal("波斯猫")
cat2 = cat
cat3 = cat
print("---马上 删除cat对象")
del cat
print("---马上 删除cat2对象")
del cat2
print("程序2秒钟后结束")
time.sleep(2)
print("---马上 删除cat3对象")
del cat3
6.隐藏数据
如果有一个对象,当需要对其进行修改属性时
对象名.属性名 = 数据 ---->直接修改
对象名.方法名() ---->间接修改
为了更好的保证属性安全,即不能随意修改,一般的处理方式为将属性定义为私有属性
添加一个可以调用的方法,供调用
如果在属性名前面加了2个下划线’__',则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。
class A():
def __init__(self):
self.__age = 0#__age现在是一个隐藏数据,将0赋值在__age上
def setAge(self,age):#age在此处是形参
self.__age = age#将形参传到__age上
def getAge(self):
return self.__age#return返回self.__age