Python之路-python(面向对象进阶)

一、面向对象高级语法部分

  1、静态方法、类方法、属性方法

  2、类的特殊方法

  3、反射

二、异常处理

三、Socket开发基础

一、面向对象高级语法部分

  静态方法(@staticmethod

  定义:只是名义上归类管理,实际上在在静态方法里面访问不了类或实例中的属性

  

1 class Dog(object):
2     def __init__(self,name):
3         self.name = name
4
5     @staticmethod
6     def eat(x,s):
7         print("%s is eating %s"%(x,s))
8 Dog.eat("df","fdasf")
9 》》》df is eating fdasf

  类方法(@classmethod

  定义:类方法只能访问类变量,不能访问实例变量

 1 class Dog(object):
 2     name = "444"
 3     def __init__(self,name):
 4         self.name = name
 5
 6     @classmethod
 7     def eat(self):
 8         print("%s is eating"%(self.name))
 9
10 d = Dog("zhangsan")
11 d.eat()
12 》》》444 is eating

  属性方法(@property

  定义:把一个方法变成一个静态属性

 1 class Dog(object):
 2     def __init__(self,name):
 3         self.name = name
 4
 5     @property
 6     def eat(self):
 7         print(" %s is eating" %self.name)
 8
 9 d = Dog("zhangsan")
10 d.eat()
11 》》》TypeError: ‘NoneType‘ object is not callable
 1 正确的调用方法
 2 class Dog(object):
 3     def __init__(self,name):
 4         self.name = name
 5
 6     @property
 7     def eat(self):
 8         print(" %s is eating" %self.name)
 9
10 d = Dog("zhangsan")
11 d.eat#eat后面不加()

  类的特殊成员和方法

  1、__doc__,打印类的描述信息

  

 1 class Dog(object):
 2     ‘‘‘
 3     这里是描述信息
 4     ‘‘‘
 5     def __init__(self,name):
 6         self.name = name
 7
 8     def eat(self):
 9         print(" %s is eating" %self.name)
10
11 print(Dog.__doc__)
12 >>>这里是描述信息

  2、__module__ 和  __class__

时间: 2024-11-05 04:52:36

Python之路-python(面向对象进阶)的相关文章

Python之路,Day16 - Django 进阶

Python之路,Day16 - Django 进阶 本节内容 自定义template tags 中间件 CRSF 权限管理 分页 Django分页 https://docs.djangoproject.com/en/1.9/topics/pagination/ 自定义template tags https://docs.djangoproject.com/es/1.9/howto/custom-template-tags/ 权限管理 django 自带有基本的权限管理 ,但粒度和限制权限的维度

Python之路Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

Python之路Python作用域.匿名函数.函数式编程.map函数.filter函数.reduce函数 一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") return test1 res = test() print(res) 输出结果 test <function test1 at 0x021F5C90> 分析:这里print(res)输出的是te

Python之路Python内置函数、zip()、max()、min()

Python之路Python内置函数.zip().max().min() 一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回true 例子 print(all([1,2,'1',''])) 输出结果 False 例子2 print(all('')) 输出结果 True any() 把序列中每一个元素做布尔运算,如果有一个为true就返回true, 但

python(24)- 面向对象进阶

面向对象基础知识: 1.面向对象是一种编程方式,此编程方式的实现是基于对类和对象的使用: 2.类是一个模板,模板中包装了多个‘函数’供使用(可以将多函数中公用的变量封装到对象中): 3.对象,根据模板创建的实例(即:对象),实例用于被包装在类中的函数: 4.面向对象三大特性:封装.继承和多态. 面向对象进阶篇详细介绍python类的成员.成员修饰符和类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存

Python之路--Python基础

目录: 第一篇:初识Python 第二篇:数据类型 第三篇:数据运算.控制流.文件操作 第四篇:函数 第五篇:内置函数 第六篇:模块与包 第七篇:常用模块 第八篇:面向对象 第九篇:面向对象进阶 第十篇:socket编程 第十一篇:并发编程之进程 第十二篇:并发编程之线程 第十三篇:并发编程之协程 第十四篇:异步IO.Redis\Memcached缓存.RabbitMQ队列 第十五篇:MySQL 原文地址:https://www.cnblogs.com/TuyereIOT/p/9193151.h

Python之路-python(面向对象进阶(模块的动态导入、断言、Socket Server))

模块的动态导入 断言 Socket Server 一.模块的动态导入 1 class C(object): 2 def __init__(self): 3 self.name = "zhangsan" 1 #动态导入 2 import importlib 3 test = importlib.import_module("lib.test") 4 print(test.C().name) 二.断言 assert断言是一句必须等价于布尔真的判定! 1 不等于 0 就会

Python学习之旅—面向对象进阶知识:类的命名空间,类的组合与继承

前言 上篇博客笔者带领大家初步梳理了Python面向对象的基础知识,本篇博客将专注于解决三个知识点:类的命名空间,类的组合以及面向对象的三大特性之一继承,一起跟随笔者老看看今天的内容吧. 1.类的命名空间 在上一篇博客中,我们提到过对象可以动态添加属性,一起来回忆下昨天的知识点,看如下的代码: class A: pass a = A() a.name = 'alex' print(a.name) 这里我们手动为a对象添加了一个属性name,然后直接打印可以得到a对象的名称.通过这个例子,我们可以

Python之路:面向对象及相关

其他相关 一.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 Bar(Foo): 5     pass 6   7 issubcl

python 之路8 面向对象2

一. 面向对象三大特性: 多态 多种类型 参数可以是python的任意一种类型 def func(arg) print(arg) obj = func(int) obj = func(str) obj = func(dict) 封装 继承 二.面向对象中 成员 字段 class Foo: #字段(静态字段) 存放在类里面 静态字段减少内存使用,多个对象公用一份 CC = 123 def _init__(self): #name字段 为普通字段 存放在对象里面 self.name = 'wyx'