python学习笔记(类与类的继承与导入)(*8)

python学习笔记(类与类的继承)(*8)

第七篇(写于2020/1/13家中)

所用教材:python编程从入门到实践

类的创建

类,我的理解就是一些方法的集合,这些方法有一定的共性
例子:

 class Dog():
    #模拟一条狗
 def __init__(self,name,age):
     self.name=name
     self.age=age
 def mess(self):
     print(self.name+'is'+self.age+'years old')

1.方法__init__()

类中的函数叫做方法, __ init __是python的默认方法,==注意前后各有两个下划线 _,共有四个 ==它一定要在其他函数前面使用;用 __xx __来表示与自己定义的不同。这个函数一定要有self为参数(self是自动传递的,只要为其他的参数提供值)。

2. 创建实例,调用方法

如my_dog=Dog(‘bai’,6)来创建一个实例
1.创建了之后,就可以使用类之中的函数了

class Dog():
    --snip--
my_dog=Dog('bai',6)
#创建了一个实例,后就可以调用了
my_dog.mess()

bai is 6 years old

2.多个实例

class Dog():
    --snip--
my_dog=Dog('bai',6)
you_dog=Dog('black',8)

使用类与实例

1.给属性赋予默认值

那就是不要传参,直接将赋值

class Dog():
    def __init__(self,name,size) :
        self.name=name
        self.size=size
        self.moren=6
my_dog=Dog('bai','big')
print(my_dog.name+ ' is '+my_dog.size+' is '+str(my_dog.moren)+' years old')

bai is big is 6 years old

2.修改属性的值

 1.直接修改

直接利用赋值等修改,如一中就可以my_dog.moren=7之类的

2.利用方法来修改

利用内置的函数(方法)进行修改

class Dog():
    def __init__(self,name,size) :
        self.name=name
        self.size=size
        self.age=6
    def change(self,new):
        self.moren=new
my_dog=Dog('bai','big')
my_dog.change(20)
print(my_dog.name+ ' is '+my_dog.size+' is '+str(my_dog.moren)+' years old')

继承

当你要编写一个类时,并不一定要从0开始,如你要写电动车时,它与车呈现一个父子的关系,电动车同时有车的特点,所以电动车可以从车这个类继承方法。
子类包含父类的属性和方法

1. 子类创建

1.先完成父类方法的完善class Dog():
2.对子类的创建class white_dog(Dog): 这里要在括号里指定父类的种类
3.对子类的创建要用super()(superclass的简写,代表父类)来初始化,使父类与子类联系起来。(自己瞎编的,还请指教)

1.class Dog():
    def __init__(self,name,size) :
        self.name=name
        self.size=size
        self.age=6
2.class white_dog(Dog):
      def __init__(self,name,size) :
      super().__init__(name,size)#用__init__完成对子类的初始化,用super来联系父与子
2.向子类添加不同于父类的方法

直接在子类里面加就完事了

1.class Dog():
    def __init__(self,name,size) :
        self.name=name
        self.size=size
        self.age=6
    def ...
2.class white_dog(Dog):
      def __init__(self,name,size) :
      super().__init__(name,size)#用__init__完成对子类的初始化,用super来联系父与子
      #加在下面就行了
      self.color='white'
3.重写父类的方法

则要将父类的方法在子类重名(用同样的名字写一遍)再写一遍
如Dog里有sit这个方法,但white_dog是瘸的,sit不了,所以重写.sit()

class Dog():
    def __init__(self,name,size) :
        self.name=name
        self.size=size
        self.age=6
    def sit(self):
        print(self.name+'is sitting')
 class white_dog(Dog):
      def __init__(self,name,size) :
          super().__init__(name,size)#用__init__完成对子类的初始化,用super来联系父与子
      #加在下面就行了
          self.color='white'
      def sit(self):
          print(self.name+"can't sit")
new_dog=white_dog('bai',6)
new_dog.sit()

bai can't sit
       

这样.sit()就被取代了

4.将实例用作属性(将属性放到一个单独的类里面)
class Dog():
    def __init__(self,name,size) :
        self.name=name
        self.size=size
        self.age=6
    def sit(self):
        print(self.name+'is sitting')
class dog_feature():
       def __init__(self,color='white'):
           self.color=color
           
class white_dog(Dog):
      def __init__(self,name,size) :
          super().__init__(name,size) 
          self.feature=dog_feature()
      def sit(self):
          print(self.name+"can't sit")
 
new_dog=white_dog('bai',6)
print(new_dog.feature.color)

这里先对父类进行编写,再写dog的特征的类,再写white_dog,如果要引用color则要先创建实例new_dog,再用new_dog.feature.color

类的导入

与导入文件类似

1.导入模块中的单个类

Car.py 
class car():
-------
class ecar():
--------
my_car.py
from Car import car

2.导入模块中多个类

my_car2.py
from Car import car,ecar

3.导入整个模块

import Car

此时如果要用到其中的类的话,则要如Car.car…来使用

4.导入模块的所有类

from Car import*

5.在一个模块中导入另一个模块

Car.py
class car():
Ecar.py
from Car import car
class ecar():
my_car.py
for Car import car
from Ecar import ecar
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值