哗啦啦Python之路 - Day 8 - 多态,类成员,单例模式,异常处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哗啦啦Python之路 - Day 8 - 多态,类成员,单例模式,异常处理相关的知识,希望对你有一定的参考价值。

1. 多态(多种类型)

多态的体现如下:

    def func(arg):
        print(arg)
    func(1)
    func("alex")
    func([11,12,13])
    #func可以是任何东西
    #但是对于C#,java都不是这样,参数必须要指定类型

多态的缺点:在缺少注释的情况下,不知道arg是什么类型,它有什么用处。比如说如果确定好是个list的话,那就可以append()。但是不确定的时候就不知道怎么用了。

 

2. 面向对象中的类成员

 1) 字段

  - 静态字段: 代码加载时已经创建,属于类

  - 普通字段: 有对象才有这个,属于对象

class Province:
    country = "中国" #静态字段,保存在类里面
    def __init__(self,name):
        self.name = name #保存在对象里,这是普通字段,如果没有调用这个函数,那么这个就不在内存里

2) 方法(属于类)

  - 普通方法: 定义必须有self,通过对象执行

  - 静态方法: @staticmethod,去掉self,参数可有可无,由类执行

  - 类方法: @classmethod,静态方法的一种特殊形式。自动传类参数,由类执行

class Province:
    def __init__(self,name):
        self.name = name
    def show(self): #普通方法
        print(self.name)
    @staticmethod #静态方法,1.加这个,2.去掉self,3.参数可有可无
    def f1(arg1):
        print(arg1)
    @classmethod #类方法,必须要有参数
    def f2(cls):#这个参数是自动传递的,是类名。静态方法的一种。
        print(cls)
    def f3(self):
        return self.name[1]

# #方法是由对象调用的
# obj = Province("河南")
# obj.show()
# #普通方法由对象去调用执行(方法属于类)
# Province.f1(111)#静态方法,只跟类有关,不需要对象,由类调用,跟函数一样的
# Province.f2()#类方法,参数是类名
# obj = Province("alex")
# ret = obj.f3()
# print(ret)

 

以上是关于哗啦啦Python之路 - Day 8 - 多态,类成员,单例模式,异常处理的主要内容,如果未能解决你的问题,请参考以下文章

Python之路,day8-Python基础

Python day 8 继承和多态

学习PYTHON之路, DAY 8 - PYTHON 基础 8 (面向对象进阶)

python 自动化之路 day 07

Python学习之路——Day8(面向对象进阶)

day33 序列类型,绑定方法,类方法,静态方法,封装继承和多态