在所有面向对象的语言中,对象都是自然界中物质和实物的抽象,在程序中批量产生对象的模具,类经过实例化成为对象,存储在内存中。
类Class的创建
在python中类用class来修饰。
# 定义一个类
class Dog:
# 定义一个初始化方法
def __init__(self,newWeight,newColor):
self.weight = newWeight
self.color = newColor
def bark(self):
print('汪汪--汪汪!')
def run(self):
print('狗在疯狂的跑')
# 创建一个对象
xiaogo = Dog(5,'黑色')
# 通过对象调用方法
xiaogo.run()
# 添加属性
print(xiaogo.color)
#在上面的代码中我们定义一个类,然后调用类实例化来创建一个小Dog对象。
**保护类的属性**
# python3中新式类,如果有(object)叫新式类;
# 上面的这种定义叫经典类;
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
xiaoming = Person('xiaoming',18)
print(xiaoming)
print(xiaoming.age)
xiaoming.age = 19;
print(xiaoming.age)
# 像上面的定义属性,可以直接外面可以修改属性;如果在定义类,不想通过对象的点语法直接修改,在原来属性名加上双下划线修饰属性,通常会用一个set方法,去修改对象属性,一个get方法,一个set方法,这种方式定义的属性是一个私有的属性
class Person1(object):
def __init__(self, name, age):
self.__name = name
self.__age = age
def setNewage(self, age):
self.__age = age
#get方法
def getAge(self):
return self.__age
def __str__(self):
return '年龄'+str(self.__age)
xiaoli = Person1('xiaoli',29)
xiaoli.setNewage(124)
print(xiaoli)
对象的销毁
在python中对象创建后,如果没有其他的对象或者方法引用,Python解释器会自动销毁这个对象,这种机制类似于oc中ARC。我将通过下面的代码,在oc中对象销毁前想做点什么操作,在oc中我们会写dealloc的方法中,但是python中写在del中
class Animal(object):
# 对象在销毁时候调用的方法
def __del__(self):
print('旺财---汪汪')
# 对象初始化前做的操作
def __init__(self,name):
self.__name = name
print('初始化了')
# 在python中,如果python解释器发现该对象,没有任何对象或者方法,使用该对象
# 该对象将会被销毁
dog1 = Animal('旺财')