面向对象方法

元组的二义性:不明确参数代表的含义

circle=(2,4,6)
def distance_from_origin(x,y):
return "返回x,y坐标"
def edge_distance_from_origin(x,y,radio):
return "返回 x,y,radio"
>>> distance_from_origin(*circle[:2])
'返回x,y坐标'
>>> edge_distance_from_orgin(*circle)
'返回 x,y,radio' 

通过使用指定的元组,解决货值元组顺序的问题以及使用元组拆分的问题

>>> Person=collections.namedtuple("Person",'name age sex')
>>> p=Person("tsui",18,'man')
>>> p
Person(name='tsui', age=18, sex='man')

 附加方法的实现(应避免使用两个_来头来命名方法)

+   -->__add__()

len -->__len__()

-   -->__sub__()

python中的类从object衍生而来

子类中任何方法都可能被重写

使用super()调用父类方法

自定义类

语法:

  class className:

    suite

  class className(base_classes):

    suite

pass 代表空语句,什么也不做

属性和方法

Person类

class Person:
def __init__(self, name="",age=0,sex="man"):
self.name = name
self.age=age
self.sex=sex def __eq__(self,other):
return self.name==other.name and self.age==other.age and self.sex==other.sex def __str__(self):
return "{0.x!r},{0.y!r}".format(self) def Speak(self):
print("{0.name} say i'm {0.age} ".fromat(self))

  

import Animal

a=Animal.Person(name="hiuyeung",age=18,sex="man")
if a.name=="hiuyeung":
print(" good guy !")
else:
print(" bad guy !")

在对方法进行调用时,python会自动提供一个参数,对对象本身的引用self,所有对象属性都必须由self进行限定。

对象创建过程

1,调用__new__(),(自身的或者父类的)

2,调用__init__()

python学习笔记(五)的更多相关文章

  1. python学习笔记五 模块上(基础篇)

    模块学习 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...

  2. Python学习笔记五

    一. 递归 递归函数: def a (): print ("from b") b() def b(): print("from a ") a() a() 递推和 ...

  3. Python学习笔记五:错误与异常

    一:常见异常与错误 BaseException 所有异常的基类SystemExit 解释器请求退出KeyboardInterrupt 用户中断执行(通常是输入^C)Exception 常规错误的基类S ...

  4. python学习笔记(五):装饰器、生成器、内置函数、json

    一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里 ...

  5. Python学习笔记五(读取提取写入文件)

    #Python打开读取一个文件内容,然后写入一个新的文件中,并对某些字段进行提取,写入新的字段的脚本,与大家共同学习. import os import re def get_filelist(dir ...

  6. Python学习笔记(五)函数和代码复用

    函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...

  7. python学习笔记五 模块下(基础篇)

    shevle 模块 扩展pickle模块... 1.潜在的陷进 >>> import shelve>>> s = shelve.open("nb" ...

  8. python学习笔记五--文件

    任何情况下文本文件在Python里均是字符串模式. 一.创建一个文件,并写入: 函数open(文件名,w) 二.打开一个文件,并读取: 函数open(文件名,r),“r”是默认值,可以不用写 三.使用 ...

  9. Python学习笔记五--条件和循环

    5.1 if语句 没什么好说,if语句语法如下: if expression: expr_true_suit 5.1.1多重条件表达式 单个if语句可以通过布尔操作符and,or,not实现多重条件判 ...

  10. Python学习笔记五,函数及其参数

    在Python中如何自定义函数:其格式为 def 函数名(函数参数): 内容

随机推荐

  1. Linux下安装配置virtualenv与virtualenvwrapper

    一.Linux下安装.配置virtualenv 配置源 #指定清华源下载pip的包 [root@localhost opt]# pip3 install -i https://pypi.tuna.ts ...

  2. Android Studio 解决ADB检测不到手机导致无法连接的问题

    ADB的全称是Android Debug Bridge,是用来管理模拟器和真机的通用调试工具. 开USB调试 方法:手机设置 - 开发人员选项 - USB调试 - 勾选(开发者调试被隐藏了,在关于手机 ...

  3. 顺序栈的基本操作中Push压入后的- S.top = S.base + S.stacksize; 作用

    #include <stdio.h> #include <malloc.h> #define TRUE 1 #define OK 1 #define ERROR 0 #defi ...

  4. 在图像上增加文字 C#

    using (Image i = Image.FromFile(inputPath)) { using (Graphics g = Graphics.FromImage(i)) { g.DrawStr ...

  5. Elastic{ON}参会随手记

    Elastic{ON} 同事送了一张Elastic{ON}的票,因为我们的产品中用到的ELK全家桶,实话说用的体量还挺大的,因此非常想去参加这次的发布会. 7.0的新特性 上午的会议是来自总部的一名工 ...

  6. hadoop-网站收藏

    Ubuntu14.04安装配置Hadoop2.6.0(完全分布式)与 wordcount实例运行 http://www.linuxidc.com/Linux/2015-01/112029p2.htm ...

  7. FileClassify文件日期分类工具

    FileClassify是一款免费的文件按日期分类工具,能够根据文件修改日期,将文件移动或复制到对应的目录中 如果对您有较大的帮助,欢迎捐赠我们,我们对您表示衷心的感谢! 1.输入文件夹和输出文件可以 ...

  8. Effective Java 第三版——68. 遵守普遍接受的命名约定

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  9. spring 中单例 bean 初始化之后和销毁之前执行指定动作 postconstruct 和 preDestroy

    1 生命周期方法, 在指定bean 创建完成后执行初始化动作或销毁之前做一些善后动作.有 3 种方法 1)实现接口 InitializingBean 然后实现 afterPropertiesSet 方 ...

  10. 移动开发常用meta设置

    <!-- 视图窗口,移动端特属的标签. --> <meta name="viewport" content="width=device-width,in ...