Python学习----第九章--类

1.使用类和实例

#创建类计算圆的面积和周长
class Yuan():                    #创建类Yuan一般类名都采用单词首字母大写方式命名,而不使用下划线
    def __init__(self,r):        #__init__中必须包含形参self,且在其他形参前面
        self.r=r                 #获取存储在形参r中的值,以self为前缀的变量可供类中所有方法使用,
                                 # 还可以通过类的任何实例访问,像这样可通过实例访问的变量称为属性。
    def area(self):              #()里需要有self,不然接收不到值
        area=3.14*self.r**2
        print("半径为:"+str(self.r)+"的圆的面积="+str(area))
    def zc(self):
        zc=2*3.14*self.r
        print("半径为:"+str(self.r)+"的圆的周长="+zc.__str__())

my_yuan=Yuan(3)                    #这是一个实例                
print("现在计算半径为:"+str(my_yuan.r)+" 的圆的面积和周长:")      #调用r,r是属性
my_yuan.area()                                                #调用area函数计算面积,area是方法
my_yuan.zc()                                                  #调用zc函数计算周长,zc是方法

#可创建多个实例-----------------------------------
my_yuan2=Yuan(4)
my_yuan2.area()
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
现在计算半径为:3 的圆的面积和周长:
半径为:3的圆的面积=28.26
半径为:3的圆的周长=18.84

半径为:4的圆的面积=50.24

2.设置类中属性的默认值以及修改类中的属性值,

继承与重写父类方法

#设置类中属性的默认值以及修改类中的属性值:
class Restaurant():
    def __init__(self,name):     #设置默认值的不需要形参,因为它并不需要获取实参
        self.name=name           #这里只是随便设置一个形参name
        self.shuliang=0          #给属性设置默认值
        print("初始化人数为:"+str(self.shuliang))

    def update(self,shuliang):       #设置形参shulaing,用来接收调用update时的实参
        self.shuliang +=shuliang     #self.shuliang=self.shuliang+接收到的shuliang
        print("修改后的人数为:"+str(self.shuliang))
res=Restaurant('桥头烧烤店')        #这里只是随便输入一个实参而已,并没有调用
res.update(5)                      #调用方法update,并传递更新值5
print("现在输出res.shuliang的值:"+str(res.shuliang))

#-------------------------------------------------------------
#继承与重写父类方法:
class Kfc(Restaurant):          #创建KFC类,继承Restaurant类,括号中表示父类
    def __init__(self,name):
        """初始化父类的属性"""
        super().__init__(name)       #父类(超类),super()函数让Python将父类和子类关联起来
                                     #super()后面的init()里面不需要self
    def update(self):                #和父类一样的函数名,在子类中会执行子类定义的方法,而忽略父类的update()方法
        print("\n这里是对父类的方法重写!!")

kfc=Kfc('肯德基')
kfc.update()               #调用Kfc中的update()方法

#输出>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
初始化定义人数:0
修改后的人数为:5
现在输出res.shuliang的值:5

初始化定义人数:0            #这里是因为继承了父类,所以输出父类中的语句
这里是对父类的方法重写!!    #子类调用重写的方法会执行子类定义的方法而忽略父类中的方法

3.导入类

继承的时候不可能把那么多的父类代码写在同一个文件内,所以可以使用导入来引入父类

导入类和上一章导入函数差不多的操作:

#从模块中导入类
from res import Resturant         #Resturant是类名,res是文件名(res.py)

#从模块中导入多个类
from res import Resturant,Resturant1,lei2    #导入res中的 Resturant类,Resturant1类,lei2类,

#导入模块中的所有类
from module_name import*           

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值