Python 类I

1.今日内容

  1. 面向过程编程,函数式编程,面向对象编程
  2. 面向对象的结构
  3. 类的基本操作方法
  4. 实例化一个对象
  5. 对象操作类中的属性与方法
  6. 什么是self

2.具体内容

  1. 面向过程编程,函数式编程,面向对象编程

    • 函数及之前的知识点,统称为:面向过程的程序设计

      • 面向过程的程序设计缺点:代码重复率高,可读性差
    • 面向对象:用一个类将相似功能的函数聚合,使代码更加清晰化,合理化
      • 类:相似功能的集合体
      • 对象:类的具体体现
  2. 面向对象的结构

    class 类名:
     属性
      方法
    • 类名要具有描述性,首字母需大写,并且不宜用“_”
  3. 类的基本操作方法

    • __dict__:查看类中所有内容,并以字典形式返回
    class Student:
    
      daily = '学习'
      examination = '考试'
    
      def __init__(self):
        self.n = 'haha'
        self.s = 'heihei'
    
      def work(self):
        print('上课')
    
      def homework(self):
        print('做作业')
    • 类名调用类中的属性
    • 使用__dict__
      print(Student.__dict__)
      
      {'__module__': '__main__', '__doc__': '\n    此类是构建学生类\n    ', 'daily': '学习', 'examination': '考试', '__init__': <function Student.__init__ at 0x109a08b70>, 'work': <function Student.work at 0x109a08d08>, 'homework': <function Student.homework at 0x109a08d90>, '__dict__': <attribute '__dict__' of 'Student' objects>, '__weakref__': <attribute '__weakref__' of 'Student' objects>}
      
      print(Student.__dict__.['daily'])
      
      学习
    • 万能的点 .(增删改查)
      print(Student.daily)   #查
      Student.cloth = '蓝色'  #增
      Student.examination = '不考试'  #改
      del Student.examination  #删
    • 类名调用类中的方法
    • 类名.方法名() (但工作中一般不会这样使用)
    Student.work()
  4. 实例化一个对象

    • 类名() :实例化一个对象,它的本质是每个类中的一个特殊函数

      class Student:
      
        daily = '学习'
        examination = '考试'
      
        def __init__(self,n,a,h):
          self.name = n
          self.age = a
          self.habby = h
      
        def work(self,c):
          self.cloth = c
          print(f'{self.name}上课')
      
        def homework(self):
          print('做作业')
      
      xiaohei = Student('小黑',18,'打球')
      xiaoming = Student('小明',18,'打球')
      print(xiaohei)#<__main__.Student object at 0x1031896d8>
      print(xiaoming)#<__main__.Student object at 0x4565896d8>
      • Remark:

        • 类的不同实例化在内存中对应不同的内存地址,即为互不影响的实例,即类中的属性方法均相同
        • 实例化对象在内存中发生了三件事:
          • 内存中创建一个对象空间
          • 自动执行__init__方法,并且将对象空间传给self参数
          • 执行__init__方法,并将对象空间封装其属性
  5. 对象操作类与对象中的属性与方法

    • 对象调用对象空间的属性 万能的点
    class Student:
    
      daily = '学习'
      examination = '考试'
    
      def __init__(self):
        self.n = 'haha'
        self.s = 'heihei'
    
      def work(self):
        print('上课')
    
      def homework(self):
        print('做作业')
    obj = Student()
    obj.n = 'hahei' #改
    obj.age = 18    #增
    print(obj.s)       #查
    del obj.n              #删
    • 对象调用类中的属性
    class Student:
        '''
        此类是构建学生类
        '''
        daily = '学习'
        examination = '考试'
    
        def __init__(self,n,a,h):
            self.name = n
            self.age = a
            self.habby = h
    
        def work(self):
            print('每天要上课')
    
        def homework(self):
            print('家庭作业')
    
    xiaohei = Student('小黑',18,'打球')
    • 对象调用类中的方法
    xiaohei.work()
  6. 什么是self

    • Self :每个类中方法的第一个位置参数,通过实例化一个对象执行此方法,解释器就自动的将此对象空间当做实参传给self
    • 类中的所有方法的第一个参数,一般都命名给self

原文地址:https://www.cnblogs.com/xiaohei-chen/p/12059224.html

时间: 2024-08-12 11:36:17

Python 类I的相关文章

【Python&amp;数据结构】 抽象数据类型 Python类机制和异常

这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Python编程,借着本次机会仔细学习一下. 抽象数据类型 最开始的计算机语言,关注的都是如何更加有效率地计算,可以说其目的是计算层面的抽象.然而随着这个行业的不断发展,计算机不仅仅用于计算,开发也不仅只关注计算过程了,数据层面的抽象也变得同样重要.虽然计算机语言一开始就有对数据的抽象,但是那些都只是对一些最基本的

第六章 Python类(面向对象编程)

什么是面向对象编程? 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构.Python就是这种编程语言. 面向对象程序设计中的概念主要包括:对象.类.继承.动态绑定.封装.多态性.消息传递.方法. 1)对象:类的实体,比如一个人. 2)类:一个共享相同结构和行为的对象的集合.通俗的讲就是分类,比如人是一类,动物是一类. 3)继承:类之间的关系,比如猫狗是一类,他们都有四条腿,狗继承了这个四条腿,拥有了这个属性. 4)动态绑定:在不

Python类属性访问的魔法方法

Python类属性访问的魔法方法: 1. __getattr__(self, name)- 定义当用户试图获取一个不存在的属性时的行为 2. __getattribute__(self, name)- 定义当该类的属性被访问时的行为 注意:当__getattr__与__getattribute__同时重写时,访问属性时,优先调用__getattribute__,只有当被访问的属性不存在时才触发__getattr__ 3. __setattr__(self, name, value)- 定义当一个

LightMysql:为方便操作MySQL而封装的Python类

原文链接:http://www.danfengcao.info/python/2015/12/26/lightweight-python-mysql-class.html mysqldb是Python操作MySQL数据库的一个常用包.但在使用过程中,我认为用起来还不够简便.为此,我在mysqldb的基础上封装了一个Python类LightMysql. 先来看如何使用 example.py #!/usr/bin/env python # -*- coding: utf-8 -*- from Lig

python类的继承

Python 类的一些基本概念 Python中一切皆对象,声明变量函数等的过程实际上就是它们到内存中为对象分配的空间的连接.Python中的类同Java.C++一样,有自己的属性与方法.属于一个对象或类的变量被称为域. 域有两种类型--属于每个实例/类的对象或属于类本身,它们分别被称为实例变量和类变量. 类的变量 由一个类的所有对象(实例)共享使用.所有对象共用一个类变量的拷贝.对象的变量 由类的每个对象/实例拥有.因此每个对象有自己对这个域的一份拷贝. 类的方法与普通的函数只有一个特别的区别-

python 类组合

在使用一款云产品的python sdk过程中,发现了python类之间调用的另一种少见方法:类组合,那么类组合是用来干吗的呢? 我们知道,在python中,类之间的相互调用,我们习惯性的采用继承的方法,但是 除了继承方法,我们还可以采用类组合的方式来调用另一个类 官方的说法:让不同的类混合并加入到其他类中,来增强功能和代码重用性.你可以在一个大点的类中创建你自己的类的实例,实现一些其他属性和方法来增强原来的类对象. 举个例子: >>> class Name(object):       

Python类的__getitem__和__setitem__特殊方法

class testsetandget:    kk = {};      def __getitem__(self, key):          return self.kk[key];      def __setitem__(self, key, value):          self.kk[key] = value;a = testsetandget()a['first'] = 1print a['first']a.__setitem__('second', 2)print a._

Python 类特殊方法__getitem__如何使用?

本文和大家分享的主要是python类的特殊方法__getitem__相关内容,一起来看看吧,希望对大家学习python有所帮助. 凡是在类中定义了这个__getitem__ 方法,那么它的实例对象(假定为p),可以像这样 p[key] 取值,当实例对象做p[key] 运算时,会调用类中的方法__getitem__. 先用一个夸张一点的例子来说明这个问题. 当实例对象通过[] 运算符取值时,会调用它的方法__getitem__,从上面代码中输出二个笑脸可以看出来. 一般这样用 ''' 黄哥Pyth

python 类 六:继承自动寻找父类

本系列博客(python 类) 的部分例子来自于 <<python 核心编程 第二版>> 前面我们谈到 python 继承,是可以引用父类的__init__方法的 ,并在此基础上添加子类自己的特殊的属性的设定,形成子类自己的__init__  构造函数. 在这种方法中,必须显示的指出父类的名字. #coding:utf-8 class p(object):     def __init__(self,nm):         self.name  = nm class c(p):

python 类一: 概述

python  类: 分为新式类 和 旧式类 (也叫经典类): 区别是: 新式类至少继承自一个父类(至少继承自object类) 经典类是没有指定父类的 类是抽象的,是实例工厂. 实例是类的实例(说的有点绕). 方法必须绑定到实例才能被调用.即使是在实例中直接调用了类方法,那也是通过实例去调用的. 类的方法参数(这里说的是一般方法)是只需传递除了self以外的参数就行的.如同其他语言的this参数,不需要传递的.而静态方法和类方法则不同,其中,类方法需要的是传递类参数. __init__方法在实例