python类与对象入门笔记(基础概念扫盲,面向对象三大特征,多态性与鸭子类型,附demo)

简介: python类与对象入门笔记(基础概念扫盲,面向对象三大特征,多态性与鸭子类型,附demo)

0 类与对象


基础介绍

  • 类属性
  • 实例属性
class Car:
    number=4 # 乘坐人数
    def __init__(self,name):
        self.name=name
car1=Car('audi rs4')
print(car1.name)
print(car1.number)
Car.number=7  # 对类属性进行修改
print(car1.number)
>>>audi rs4
>>>4
>>>7


  • 实例方法
def eat(self):
    print('学生在吃饭...')


  • 静态方法
@staticmethod
def sm():  #没有self
    print('静态方法')
# 调用
类名.method()


  • 类方法
@classmethod
def cm(cls): # 传入cls
    print('类方法')
# 调用
类名.method()


  • 实例属性
def __init___(self,name):
  self.name=name #self.name称为实例属性


对象创建

  • 实例方法实现的两种方式
#对象名.方法名()
#类名.方法名(对象名)
class Car:
    number=4 # 乘坐人数
    def __init__(self,name):
        self.name=name
    def show(self):  #要调用实例属性,记得传入self
        print('汽车型号为'+self.name)
car1=Car('audi rs4')
car1.show()
Car.show(car1)
>>>汽车型号为audi rs4
>>>汽车型号为audi rs4


  • 类属性的使用方式


动态绑定属性和动态绑定方法

# 动态绑定方法
class Car:
    number=4 # 乘坐人数
    def __init__(self,name):
        self.name=name
    def show(self):
        print('汽车型号为'+self.name)
def wash():
    print('清洗已完成')
car1=Car('audi rs4')
car1.wash=wash
car1.wash()
>>>清洗已完成


1 面向对象的思想


三大特征分别具有什么作用


1.1 封装

作用:提高程序的安全性

  • 属性和方法封装到类对象中
  • 私有属性的介绍


1.2 继承

  • 继承的demo
class Person(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def info(self):
        print('姓名:{0},年龄:{1}'.format(self.name,self.age))
class Student(Person):
    def __init__(self,name,age,sex):
        super().__init__(name,age)  
        self.sex=sex
stu=Student('wang',12,'male')
stu.info()
>>> 姓名:wang,年龄:12


super之后有()

  • 多继承demo
  • 方法重写


子类对继承自父类的某个属性或方法可以重新编写,编写时也可以通过super()调用。

class Person(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def info(self):
        print('姓名:{0},年龄:{1}'.format(self.name,self.age))
class Student(Person):
    def __init__(self,name,age,sex):
        super().__init__(name,age)
        self.sex=sex
    def info(self):
        super().info()
        print('性别:{0}'.format(self.sex))
stu=Student('wang',12,'male')
stu.info()


  • object类


1.3 多态

多态、多态性、鸭子类型

  • 多态性:一个接口多种实现

python中对多态的理解 - 宇文哲的文章 - 知乎 https://zhuanlan.zhihu.com/p/88402677

  • 鸭子类型:

这个概念的名字来源于由James Whitcomb Riley提出的鸭子测试,“鸭子测试”可以这样表述:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”

class Duck():
    def walk(self):
         print('I walk like a duck')
    def swim(self):
         print('i swim like a duck')
class Person():
    def walk(self):
       print('this one walk like a duck')  
    def swim(self):
       print('this man swim like a duck')


可以很明显的看出,Person类拥有跟Duck类一样的方法,当有一个函数调用Duck类,并利用到了两个方法walk()和swim()。我们传入Person类也一样可以运行,函数并不会检查对象的类型是不是Duck,只要他拥有walk()和swim()方法,就可以正确的被调用。


5 一些小知识点


5.1 方法与函数的区别

  1. 与类和实例无绑定关系的function都属于函数(function)
  2. 与类和实例有绑定关系的function都属于方法(method)
目录
相关文章
|
21天前
|
索引 Python
python字符串类型及操作
本文主要讲解字符串类型的表示、操作符、处理函数、处理方法及格式化。内容涵盖字符串的定义、表示方法(单双引号、三引号)、索引与切片、特殊字符转义、常见操作符(如+、*、in等)、处理函数(如len()、str()、chr()等)、处理方法(如.lower()、.split()等)以及格式化方式(如.format())。通过实例代码详细介绍了字符串的各种用法和技巧,帮助读者全面掌握字符串操作。
python字符串类型及操作
|
3月前
|
存储 数据处理 Python
Python如何显示对象的某个属性的所有值
本文介绍了如何在Python中使用`getattr`和`hasattr`函数来访问和检查对象的属性。通过这些工具,可以轻松遍历对象列表并提取特定属性的所有值,适用于数据处理和分析任务。示例包括获取对象列表中所有书籍的作者和检查动物对象的名称属性。
50 2
|
3月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
129 8
|
3月前
|
缓存 监控 算法
Python内存管理:掌握对象的生命周期与垃圾回收机制####
本文深入探讨了Python中的内存管理机制,特别是对象的生命周期和垃圾回收过程。通过理解引用计数、标记-清除及分代收集等核心概念,帮助开发者优化程序性能,避免内存泄漏。 ####
74 3
|
4月前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
139 8
|
4月前
|
Python
在 Python 中实现各种类型的循环判断
在 Python 中实现各种类型的循环判断
68 2
|
5月前
|
存储 数据安全/隐私保护 索引
Python 散列类型三以及函数基础
【10月更文挑战第11天】
52 1
Python 散列类型三以及函数基础
WK
|
5月前
|
存储 Python
Python内置类型名
Python 内置类型包括数字类型(int, float, complex)、序列类型(str, list, tuple, range)、集合类型(set, frozenset)、映射类型(dict)、布尔类型(bool)、二进制类型(bytes, bytearray, memoryview)、其他类型(NoneType, type, 函数类型等),提供了丰富的数据结构和操作,支持高效编程。
WK
39 2
|
5月前
|
存储 索引 Python
Python散列类型(1)
【10月更文挑战第9天】
61 0
|
5月前
|
Python
【python从入门到精通】-- 第一战:安装python
【python从入门到精通】-- 第一战:安装python
82 0

热门文章

最新文章