自学python笔记6--类

自学python笔记6

自学Python第六天,打卡!
今天主要学习类的知识点
以可乐为例:

class COla:
    formula=['sugar','water']#配方

1.类的实例化:

coke_for_me=COla()

但不管怎样,可乐和我的可乐配方仍然是一样的。
所以(类属性的引用):

print(COla.formula)
print(coke_for_me.formula)

在这里插入图片描述
输出结果一致。
类的属性与其他正常的变量没有什么太大的区别,比如说:

for ele in coke_for_me.formula:
    print(ele)

在这里插入图片描述
2.创建实例属性:

coke_for_china=COla()
coke_for_china.local_logo='可口可乐'

3.打印实例属性引用结果:

print(coke_for_china.local_logo)

在这里插入图片描述
4.方法:(其实是函数,方法是供实例使用的,因此我们还可以称之为实例方法)
4.1

class COla:
    formula=['sugar','water']
    def drink(self):#self默认参数
        print('Energy!')

4.1.1调用:

coke_for_me.drink()

在这里插入图片描述
4.1.2更多参数:

class COla:
    formula=['sugar','water']
    def drink(self,howmuch):
        if howmuch=='a little':
            print('Awesome!')
        elif howmuch=='a bottle':
            print('Awful!')
coke_for_me.drink('a little')

在这里插入图片描述
4.2方法举例: _ _ init _ _()
如果你在类里定义了它,在创建实例的时候它就能帮你自动地处理很多事情——比如新增实例属性。
4.2.1

class COla:
    formula=['sugar','water']
    def __init__(self):
        self.local_logo='可口可乐'
    def drink(self):#self默认参数
        print('Energy!')
coke=COla()
print(coke.local_logo)

在这里插入图片描述
4.2.2

class  COla:
   formula = ['caffeine','sugar','water','soda']
   def __init__(self):

        for element in self.formula:
             print('Coke has {}!'.format(element))
   def drink(self):
        print('Energy!')
coke=COla()

自动输出:
在这里插入图片描述
4.2.3更多参数

class COla:
    formula=['sugar','water']
    def __init__(self,logo_name):
        self.local_logo=logo_name
    def drink(self):#self默认参数
        print('Energy!')
coke=COla('可口可乐')
print(coke.local_logo)

在这里插入图片描述
5.类的继承:

class CocaCola:
     calories = 140
     sodium = 45
     total_carb = 39
     caffeine = 34
     ingredients = ['High Fructose Corn Syrup','Carbonated Water',
       'Phosphoric Acid','Natural Flavors','Caramel Color','Caffeine' ]
     def __init__(self,logo_name):
         self.local_logo = logo_name
     def drink(self):
          print('You got {} cal energy!'.format(self.calories))

class CaffeineFree(CocaCola):
      caffeine = 0
      ingredients = [ 'High Fructose Corn Syrup', 'Carbonated Water',
                      'Phosphoric Acid','Natural Flavors','Caramel Color']

coke_a = CaffeineFree('Cocacola-FREE')
print(coke_a.local_logo)
coke_a.drink()

在这里插入图片描述
我们在新的类CaffeineFree 后面的括号中放入CocaCola,这就表示这个类是继承于CocaCola这个父类的,而CaffeineFree 则成为了CocaCola子类。类中的变量和方法可以完全被子类继承,但如需有特殊的改动也可以进行覆盖。可以看到CAFFEINE-FREE存在着咖啡因含量、成分这两处不同的地方,并且在新的类中也仅仅是重写了这两个地方,其他没有重写的地方,方法和属性都能照常使用。

6.类属性的运用
6.1

class TestA:
   attr = 1
obj_a = TestA()

TestA.attr = 42
print(obj_a.attr)

类属性如果被重新赋值,则该类属性被引用时也发生了变化。
在这里插入图片描述
6.2

class TestA:
   attr = 1
obj_a = TestA()
obj_b = TestA()
obj_a.attr = 42
print(obj_b.attr)

但只改变实例的属性并不改变其他实例引用的该属性的值。
在这里插入图片描述
6.3

class TestA:
 attr = 1
 def __init__(self):
         self.attr = 42
obj_a = TestA()
print(obj_a.attr)

当类属性实例属性具有相同的名称时,以类中该属性最后的值为准。
在这里插入图片描述
7.类的扩展

obj1=1
obj2='string'
obj3=[]
obj4={}
print(type(obj1),type(obj2),type(obj3),type(obj4))

结果为:
在这里插入图片描述

持续更新。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值