Python--day7--面向对象编程进阶

介绍

学习记录。。。。

目录:

  1. 面向对象高级语法部分
  • 字段
  • 方法
  • 属性

经典类 新式类类的特殊成员反射


  • 字段
    • 普通字段
    • 静态字段
  • 方法
    • 普通方法
    • 类方法
    • 静态方法
  • 属性
    • 普通属性
    • 私有属性

字段

普通字段    属于对象, 实例变量,存在每个实例里面,进行实例的时候,开辟一个实例对象,

静态字段    属于类,类变量, 内存中存在类里面,没实例化,也存在。

方法

class Animal:
    def __init__(self,name):
        self.name=name
    hobbie = ‘meat‘
    @classmethod ##类方法,不能访问实例变量
    def talk(self):
        print("{}  is   talking".format(self.hobbie))
    @staticmethod  ##静态方法,不能访问类变量 和实例变量,大多情况不用,类的工具箱
    def walk():
        print(" is   talking")
    @property   ##属性,下面就不是方法了,变成了一个属性,但是依然可以访问实例和类变量
    def  habit(self):
        print("{}  habit  is  xxoo".format(self.name))
d = Animal("Hequan")
Animal.talk()
d.talk()
d.walk()
d.habit
meat  is   talking
meat  is   talking
 is   talking
Hequan  habit  is  xxoo

私有属性 __

self.__num=num



经典类: 深度有限

新式类:广度优先



类的特殊成员

  1. __doc__         打印注释
  2. __module__   表示当前操作的对象在那个模块
  3. __class__       表示当前操作的对象的类是什么
  4. __init__          构造方法,通过类创建对象时,自动触发执行
  5. __del__          析构方法,当对象在内存中被释放时,自动触发执行。执行完成后,统一销毁。
  6. __call__          对象后面加括号,触发执行
  7. __dict__         查看类或对象中的所有成员、
  8. __new__ \ __metaclass__    类的生成 调用 顺序依次是 __new__ --> __call__ --> __init__


反射

通过字符串映射或修改程序运行时的状态、属性、方法

  1. hasattr
  2. getattr
  3. setattr
  4. delattr

if __name__=="__main__":

server = WebServer(‘localhost‘,3306)

if   hasattr(server,sys.argv[1]):

func = getattr(server,sys.argv[1])     ##获取执行后面加的值  如 start

func()



本文出自 “何全” 博客,请务必保留此出处http://hequan.blog.51cto.com/5701886/1886936

时间: 2024-10-10 06:16:31

Python--day7--面向对象编程进阶的相关文章

Python之路,Day7 - 面向对象编程进阶

本节内容 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业开发一个支持多用户在线的FTP程序 面向对象高级语法部分 静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法什么是静态方法呢其实不难理解普通的方法可以在实例化后直接调用并且在方法里可以通过self.调用实例变量或类变量但静态方法是不可以访问实例变量或类变量的一个不能访问实例变量和类变量的方法其实相当于跟类本身已经没什么关系了它与类唯一的关联就是需要通过

Python基础-第七天-面向对象编程进阶和Socket编程简介

本篇内容: 1.面向对象编程进阶-静态方法 2.面向对象编程进阶-类方法 3.面向对象编程进阶-属性方法 4.面向对象编程进阶-特殊成员(内置方法) 5.面向对象编程进阶-反射 6.异常处理.断言 7.Socket编程简介 一.面向对象编程进阶-静态方法 1.静态方法的实现 通过@staticmethod装饰器可以把其装饰的方法变为一个静态方法: 变成静态方法后,形参中可以不用写self了.如果写了self,默认是不会把对象本身传递给self,需要手动传递: class Dog(object):

进击的Python【第七章】:Python的高级应用(四)面向对象编程进阶

Python的高级应用(三)面向对象编程进阶 本章学习要点: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 一.面向对象高级语法部分 静态方法 要在类中使用静态方法,需在类成员函数前面加上@staticmethod标记符,以表示下面的成员函数是静态函数.使用静态方法的好处是,不需要定义实例即可使用这个方法.另外,多个实例共享此静态方法. 类方法 类方法与普通的成员函数和静态函数有不同之处,在接触的语言中好像也没见过这种语义,看它的定义: 

python面向对象编程进阶

python面向对象编程进阶 一.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 1 class Foo(object): 2 pass 3 4 obj = Foo() 5 6 isinstance(obj, Foo) issubclass(sub, super)检查sub类是否是 super 类的派生类 1 class Foo(object): 2 pass 3 4 class B

Python 3面向对象编程

这篇是计算机类的优质预售推荐>>>><Python 3面向对象编程> 编辑推荐 本书不是Python 的入门书籍,适合具有Python 基础经验的开发人员阅读.如果你拥有其他面向对象语言的经验,你会更容易理解本书的内容. 内容简介 Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性.本书通过Python 的数据结构.语法.设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念和原则.本书不是Python 的入门书籍,

what&#39; the python之面向对象(进阶)

面向对象的知识点补充(进阶版) classmethod和staticmethod:这两个函数的用途就是可以不用实例化对象就可以调用方法 class Classmethod_Demo(): role = 'dog' @classmethod def func(cls): print(cls.role) Classmethod_Demo.func() class Staticmethod_Demo(): role = 'dog' @staticmethod def func(): print("当普

Python之路第一课Day6--随堂笔记(面向对象编程进阶...未完待续 )

本节内容: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 一.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它

Python之路,Day8 - 面向对象编程进阶

本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 经典类vs新式类 把下面代码用python2 和python3都执行一下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #_*_coding:utf-8_*_ class A:     def __init__(self):

python第七周-面向对象编程进阶

申明:本文内容主要转自Alex老师的博客,仅供学习记录! 静态方法 只是名义上归类管理,实际上在静态方法里访问不了类实例中的任何属性 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它与类唯一的关联就是需要通过类名来调用这个方法 1 clas

python的面向对象编程

面向对象编程是一种程序的范式,它把程序看成是对不同对象的相互调用,对现实世界建立的一种模型. 面向对象编程的基本思想,类和实例.类用于定义抽象对象,实例根据类的定义被创建出来. 在python当中我们使用下面的方法来定义类(按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的.): class Python(object): pass 我们实例化方法的话呢就使用: xaioming = Python() 在面向对象之后呢我们要进行属性的设置.