自学Python:第9篇——类

根据类来创建对象被称为实例化

根据约定,在python中,首字母大写的名称指的是类,

小写的指的是根据类创建的实例


一个简单例子:
class Dog():
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def sit(self):
        print(self.name+" is sitting now")
    
a=Dog('haski',5)
print(a.age)
a.sit()

>>>
5
haski is sitting now



__init__() 是一个特殊的方法,每当你根据Dog类创建新实例时,python都会自动执行他

获得实例的属性:
使用点句表示法,如 a.name  my_dog.age

调用方法
eg:
a.sit() my_dog.roll()



使用类和实例
1.给属性指定默认值
class Dog():
    def __init__(self,name,age):
        self.name=name
        self.age=age
        self.color='black'
        
    def sit(self):
        print(self.name+" is sitting now")



这里的self.color就是一个属性,而'black'则是默认值

2.修改默认值
方法一:直接修改
my_dog=Dog('haski',5)
my_dog.color='blue'



方法二:通过方法修改属性的值
class Dog():
    def __init__(self,name,age):
        self.name=name
        self.age=age
        self.color='black'
        
    def sit(self):
        print(self.name+" is sitting now")
    
    def update_color(self,color):
        self.color=color
    
a=Dog('haski',5)
a.update_color('blue')
print(a.color)

>>>
blue



除此之外,还可以通过添加一些逻辑(如判断语句),来禁止任何人非法修改属性的值,如把某属性的值降低
还可以修改方法,来递增属性的值,如:
def update(self,point):
    self.point+=point


从而达到递增的效果



继承
编写类时,并非总是需要从空白开始,如果你要编写的类是另一种现成类的特殊版本,可以使用继承
一个类继承另一个类时,它将自动获得另一个类的所有属性的方法,
原有的类称为父类,新的类称为子类,子类继承了其父类的所有属性和方法,
同时还可以定义自己的属性和方法

简单例子:
class Haski(Dog):
    def __init__(self,name,age):
        super().__init__(name,age)

a=Haski('betty',5)
print(a.name)

>>>
betty



super()是一个特殊函数,帮助python将父类和子类关联起来
super()让Haski实例包含父类的所有属性
创建子类时,你可以根据需求添加任意数量的属性和方法
倘若父类的方法或者属性与子类有误差,或者子类不适用父类的方法,可以重写父类的方法,直接覆盖


导入类:
随着你不断的给类添加功能,文件可能会变的很长,为遵循python的总体理念,应让文件尽可能整洁

导入单个类
专门创建一个Dog.py,在另外一个程序里调用
>>> from Dog import Dog
>>> my_dog=Dog('ammy',5)
>>> my_dog.sit()
ammy is sitting now



可以在一个模块(一个.py文件)中存储多个类,也可以从一个模块中导入多个类
eg:
from Dog import Dog,Haski



你还可以导入整个模块: import Dog
再用句点表示法访问所需要的类
my_dog=Dog.Dog('ammy',5)



导入模块中所有的类:
from Dog import * 

这种方式虽然简单省事,但是不推荐使用,如果引入重名的类,将引发难以诊断的错误


模块random包含以各种方式生成随机数的函数,

其中的randint()返回一个位于指定范围内的整数
eg:
from random import randint
x=randint(1,6)
print(x)
>>>
1










猜你喜欢

转载自blog.csdn.net/torres_10/article/details/79508558
今日推荐