Python笔记(5)类__方法与继承】的更多相关文章

方法 类方法@classmethod,实例方法,静态方法@staticmethod,特殊方法,__init__ 形式上的区别:调用是通过类和实例进行,不能直接调用,有自己的特殊参数,如__init__有self,类方法有参数class,有自己的声明方式. 实质上的区别:类方法与类绑定,实例方法绑定实例,静态方法无绑定(和函数一样,只不过用类和实例进行调用),特殊方法某些场景会自动调用. 特殊方法 数字计算:加减乘除都是通过特殊方法来实现的,round是四舍五入. 调用方法:str()转化成字符串…
全面了解python中的类,对象,方法,属性 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗,它的颜色,大小,年龄,体重等是它的属性或特征.它会汪汪叫,会摇尾巴等是它的行为. 我们在描述一个真实对象(物体)时包括两个方面: 它可以做什么(行为) 它是什么样的(属性或特征). 在python中,一个对象的特征也称为属性(attribute).它所具…
书接上回,继续来讲讲关于类及其方法的一些冷知识和烫知识.本篇将重点讲讲类中的另一个重要元素--方法,也和上篇一样用各种神奇的例子,从原理和机制的角度为你还原一个不一样的Python.在阅读本篇之前,推荐阅读一下上篇的内容:Python科普系列--类与方法(上篇) 对象方法的本质 说到面向对象编程,大家应该对方法这一概念并不陌生.其实在上篇中已经提到,在Python中方法的本质就是一个字段,将一个可执行的对象赋值给当前对象,就可以形成一个方法,并且也尝试了手动制造一个对象. 但是,如果你对Pyth…
类和对象: 是面向对象编程的两个主要方面,类创建一个新类型,而对象这个类的实例.. 域: 属于一个对象或类的变量被称为域.域有两种类型: 属于每个实例(类的对象)或属于类本身.它们分别被称为实例变量和类变量. 方法: 对象也可以使用属于类的函数来具有功能.这样的函数被称为类的方法. 属性: 域和方法可以合称为类的属性. 类使用class关键字创建.类的域和方法被列在一个缩进块中. 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称self,但是在调用这个方法的时候你不为…
面向对象是一种程序设计思想,对象作为程序基本单元,包含了数据和操作数据的函数. 面向对象的三大特点--数据封装.多态和继承. #类的创建,class关键字,类名大写,object表示从哪个类继承而来,如果没有继承的类,默认就是object,这是所有的类都会继承的类 class Student(object): pass 创建类的实例 tom = Student() #tom实例指向类Student 还可以自由的为实例绑定属性 tom.age = 18 tom.sex = boy #访问实例属性>…
类和对象 类的构造方法 def __init__(): 1 class People: 2 def __init__(self,name): 3 self.name = name 注意:在构造方法中的变量不用再次声明,必须有self,创建类的对象是用= 类的私有成员 让方法或者类变为私有,只要在它的名字前加上双下划线 1 class People: 2 __name = 'laowang' 3 def getname(self): 4 return self.__name 注意:类的私有成员可以…
欢迎来到新的系列,up又开新坑了~~ 实际上,Python作为一门易用性见长的语言,看上去简单,却仍然有很多值得一说的内容,因此这个系列会把Python中比较有意思的地方也给科普一遍.而另一方面,关于Python的学习资料在中文互联网上已经随处可见,虽然大都是入门向.实用向的,不过资料覆盖面也已经挺全乎的了.所以这个系列将会着重去讲一些现有中文资料里不常见到的硬核内容,尝试去用另外一个视角去讲解Python,也因此,这个系列更适合有最基本Python使用基础,对基本概念有初步认识的读者. 本文将…
类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自object,类的实例化如下: class Person(): def __init__(self): pass person=Person() __init__()是类的构造函数,在实例化时调用,它的参数self表示类实例. 类中的字段 字段的访问级别: Python中以双下划线开头的字段访问级别是pr…
引言 我visual studio 2017就算体积巨大.启动巨慢.功能简陋也不会安装PyCharm的,嘿呀,真香.好吧,为了实现socket网络编程,更换了软件. 正文 静态方法 只是在名义上归类管理,实际上在静态方法里访问不了类或实例中的任何属性.例子. class Student(object): def __init__(self,name): self.name = name @staticmethod#静态方法 def name(self): print('名字是%s'%(self.…
# 对象 = 属性 + 方法>>> # Python中的类名约定以大写字母开始>>> # tt = Turtle() 这就是创建类实例的方法,其它语言用new ,它是不需要的>>> >>> # Python中的self就相当于Java中的this >>> # self ,一般都放在方法的第一个参数中这是默认的要求 class Ball: def setName(self,name): self.name=name d…
1.类 1.1 类的定义 # 类的定义 class 类名: pass # pass是空语句,不具有任何意义,仅为了保持程序结构完整性 # 创建对象 对象名 = 类名() 1.2 成员变量 # 成员变量用于描述对象的固有状态或属性. # 成员变量定义语法 class 类名: def __init__(self): # 公有属性 self.变量名1 = 值1 self.变量名2 = None 对象名.变量名 = 值 # 独有属性 class Person: def __init__(self): s…
 1,类的特殊方法  新建一个类,本章内容中的特殊方法如果不创建类或新增方法,默认使用的就是下面的类: class Foo: """this is Foo""" typecode = 'd' def __init__(self, x): self.x = x def run(self): return self.x f = Foo(1) __doc__:类的描述信息 print(f.__doc__) # this is Foo __module_…
#!usr/bin/python # -*- coding: utf-8 -*- # 存储5个人的年龄,求他们的平均年龄 age1 = 18 age2 = 15 age3 = 38 age4 = 20 age5 = 80 print((age1+age2+age3+age4+age5) / 5) # 思考:要存储100个人的年龄 # 解决:使用列表 # 本质:是一种有序的集合 ''' 创建列表 格式:列表名 = [列表选项1,列表选项2,列表选项3,....列表选项n] ''' # 输入5个数字…
#!/usr/bin/env python #-*- coding:utf-8 -*- # 创建空元组 tuple1 = () print(tuple) # 创建带有元素的元组 # 元组中的类型可以不同 tuple2 = (1,2,3,"good",True) print(tuple2) # 定义只有一个元素的元组 tuple3 = (1, ) print(tuple3) print(type(tuple3)) # 元组元素的访问 # 格式:元组名[下标] # 下标从0开始 # 取值…
1.问题:toString()没搞懂? int a = 1; Integer aa = new Integer(a); //这是实现的过程 System.out.println("Hello," + aa.toString()); //得Hello,1 int b = 1; System.out.println("Hello," + b); //得Hello,1 class MyDate { int year,month,day; public int get()…
class Cat(Animal): def __init__(self): import warnings warnings.warn("Cat类带删除线了", DeprecationWarning) def run(self): import warnings warnings.warn("run方法带删除线了", DeprecationWarning)…
#!/usr/bin/env python #-*- coding:utf-8 -*- ''' 概述: 使用键值(key-value)存储,具有极快的查找速度 注意:字典是无序的 key的特性: 1.字典中的key必须唯一 2.key必须是不可变的对象 3.字符,整数等都是不可变的,可以作为key 4.list是可变的,不能作为key 思考:保存多位学生的姓名与成绩 使用字典,学生姓名为key,学生成绩作为值 ''' dict1 = {"tom":60, "dgg"…
#!/usr/bin/env python #-*- coding:utf-8 -*- ''' for 语句 格式: for 变量名 in 集合: 语句 逻辑:按顺序取"集合"中的每个元素赋值给变量,在取执行语句. 如此循环往复,直到取完"集合"中的元素截止 ''' # 遍历列表 for i in [1,2,3,4,5]: print(i) ''' range([start] end[,step])函数 列表生成器 start默认是0 step默认是1 功能:生成数…
#!/usr/bin/env python #-*- coding:utf-8 -*- #打印0001-9999的数字 for i in range(9999): s = "%04d" % i print(s) #循环打印字典 dict1 = {"tom":90,"dgg":100,"sb":-1} for a in dict1: print(a,dict1[a]) #打印dict1的值 for value in dict1.…
我们通过下面的代码来对参数self进行理解 #coding:utf-8 2 class washer(): 3 def wash(self): 4 print("洗衣服") 5 print(self) 6 7 haier = washer()#创建对象 8 print(haier) 9 haier.wash() 10 #运行结果 <__main__.washer object at 0x7f58cda4dc18> 洗衣服 <__main__.washer object…
面向对象是一种编程方式, 主要集中在类和对象的两个概念 python 中的类符合封装, 继承, 多态的特征 类 是一个模板, 是n多函数的集成 对象 是类的实例化 类的成员分为三大类:字段.方法.属性 字段 字段包括静态字段和普通字段,静态字段只在内存中保存一份, 普通字段在每个对象中都要保存一份(值可不同) 普通字段属于对象, 实例化对象时普通字段存在于对象的内存中 静态字段属于类, 实例化对象之后不存在与对象的内存中 应用场景:如果类的多个对象需要使用相同的属性值则应定义为静态字段. cla…
1,基本概念 1.1,数据类型 基本数据类型:字符串,数字,布尔等 引用数据类型:相对不可变(元组),可变(列表,字典,集合等) 基本数据类型存放实际值,引用数据类型存放对象的地址(即引用) ==:判断值是否相等 is:判断id是否相等,即内存地址,id()可以返回内存地址 1.2,序列类型 容器类型:list,tuple,collections.deque,存放引用,可嵌套 扁平序列:str,bytes,bytearray,memoryview,array.array,存放值,只包含原子数据…
// Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @property int age; /* 什么是类工厂方法: 用于快速创建对象的类方法, 我们称之为类工厂方法 类工厂方法中主要用于 给对象分配存储空间和初始化这块存储空间 规范: 1.一定是类方法 + 2.方法名称以类的名称开头, 首字母小写 3.一定有返回值, 返回值是id/instancetype */ + (instancetype)p…
# -*- coding=  utf-8 -*- # 文件编码定义的语法规则是: coding[:=]/s*([-/w.]+) # 未指定编码将默认为 : ASCII # 同时要注意物理文件的编码也要符合本语言指定的编码 # 更多可参考: http://python.org/dev/peps/pep-0263/ class CBase: '''''资源相关类'''     # 通过CBase.__doc__ 或者类实例.__doc__ 可以输出此说明 counter = 0;    # 这是属于…
(一)  简单说明 字典是Python的内置数据结构,将数据与键关联(例如:姓名:张三,姓名是键,张三就是数据).例如:下面这个就是一个字典 {'姓名': '张三', '出生日期': '2899-08-12', '成绩': ['3.21', '3.10', '3.01']} 创建字典.添加数据.访问字典数据的方式如下: d = {}  #直接用{}创建字典 f = dict() #通过工厂函数dict()创建字典 #通过下面的方式添加数据 d['姓名'] = '张三' d['出生日期'] = '…
我们在编程的过程中,并非都是要重头开始.比如其他人已经有现成的类,我们可以使用其他找人编写的类.术语称之为: 继承. 当一个类继承例外一个类时,它可以获得这个类的所有属性和方法:原有的类称之为 父类,新的类称之为子类.子类可以继承父类的所有方法和属性,还可以自定一些自己的方法和属性. 比如我们已经有了一个叫汽车的父类,我们可以继承这个类,生成一个电动车的子类: #-*- coding:utf-8 -*- class Car(): def __init__(self, make, model, y…
一.多继承 案例1:小孩继承自爸爸,妈妈.在程序入口模块再创建实例调用执行 #father模块 class Father(object): def __init__(self,money): self.money = money def play(self): print("play") def eat(self): print("eat") #mother模块 class Mother(object): def __init__(self,faceValue):…
1.类的继承与方法的重载 上面就是先定义了一个类A,然后由定义了一个类B,B继承了类A,这样B就有了A的非私有属性和方法. class Washer: company='ZBL' def __init__(self,water=,scour=): self._water=water #不想让用户直接访问实例变量,可以标志成私有 self.scour=scour self.year=#这是生产日期 #属性包装,将water属性包装成方法,用户使用water时实际是访问的方法 @staticmeth…
python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型或对象的不同而表现出不同的行为.   这是一个简单的例子,add方法,,包装了一下 + 函数.这就是多态.不管参数是什么类型,使用add方法,都可以把他们+在一起. 封装,封装式对全局作用域中其他区域隐藏多余的信息.和多态相似但是不同的概念,使用对象而不知道其细节.多态是不知道对象引用了什么类型,而…
python类及其方法 一.介绍 在 Python 中,面向对象编程主要有两个主题,就是类和类实例类与实例:类与实例相互关联着:类是对象的定义,而实例是"真正的实物",它存放了类中所定义的对象的具体信息. 类有这样一些的优点: 1.类对象是多态的:也就是多种形态,这意味着我们可以对不同的类对象使用同样的操作方法,而不需要额外写代码. 2.类的封装:封装之后,可以直接调用类的对象,来操作内部的一些类方法,不需要让使用者看到代码工作的细节. 3.类的继承:类可以从其它类或者元类中继承它们的…