类
面向对象
根据类创建对象被称为实例化。
创建和使用类
创建类
class Dog():
def __init__(self,name,age):
self.name = name
self.age = age
def sit(self):
print(self.name.title() + ' is now sitting.')
在这儿我们定义了一个Dog类,类名称都是大写开头
方法__init__(self,name,age)
这个方法在创建Dog实例时,python都会默认运行它。
它所包含的参数中,self必不可少,必须处于参数中第一个位置,说白了有了它,类里面的所有都可以引用这个init类里面的所有东西。还有self是自传递。
他在内部还会创建属性,这些属性在后面的方法中都会被用到,还会在创建的实例中也会直接调用。
在python2.7中创建类
class Dog(object):
跟上面python3中相比,它就多了一个object。
根据类创建实例
my_dog = Dog(‘while’,6)
这儿我们创建了一个名为while,年龄为6的狗。我们规定创建实例时命名只能是小写名称。当我们创建了这个实例后,python就调用__init__():方法,这儿python会返回一个Dog的实例。
访问属性
my_dog.name
这时python就会把name对应的值返回。
访问方法
my_dog.sit()
这样就使用了方法sit(),方法就是我们之前所接触到的函数,只不过在类中我们把它叫做方法。
使用类
给属性默认值
给定默认值就是给他一个基本的属性,不用创建实例时再次递入它的值。
def __init__(self,name,age):
self.name = name
self.age = age
self.ji = 0
修改属性的值
直接修改
创建一个实例,然后通过访问属性然后直接给属性赋值。
通过方法修改属性的值
就是通过类里面的一个方法来实现,当我们调用的时候,我们把这个要修改的值通过参数传递进去,然后它执行方法内部的语句,实现修改。
继承
继承是面向对象的三大属性之一,继承就是把一个最基础的东西A定义成一个类,这个类里面具有这个东西的所有属性,那么下次我们使用A制造东西B时,我们的B中应该具有A的所有属性。所以说继承就是将属性和方法叠加。
继承例
我们还是使用上面的Dog类。
class Coley(Dog):
def __init__(self,name,age):
super().__init__(name,age):
这儿的super()帮助我们将父类Dog与子类Coley联系起来。这儿我们就能使用Dog中的所有属性还有方法。
在python2.7中
class Coley(Dog):
def __init__(self,name,age):
super(Coley,self).__init__(name,age):
self.leg = 10
在python中我们在使用时就必须给super中指出子类的名称。leg就是柯基最明显的一个特征。这也就是给子类定义了一个方法。
重写父类
顾名思义就是将父类中原有的东西重写,这样就会忽略父类中的方法。
将实例用作属性
这儿就是定义了一个类,在使用另外一个类的时候我们将我们之前定义的那个类创建一个新的实例,这个新的实例被当成一个属性。
导入类
导入单个类:from dog import Dog
从dog模块中把Dog这个类导入。然后我们就可以直接使用Dog这个类了。
导入模块:import dog
直接将模块dog导入。
也可以在一个模块中导入另外一个模块。
python标准库
python有很多标准库可以供我们直接调用。
这是一个随机数的例子:
from random import randint
x = randint(1,6)
这样就实现了在1——6中返回一个整数的操作。相当于一个筛子。