python类的使用

目标:

1.父类,子类定义,以及子类调用父类

2.类的组合使用

3.内置功能

1)父类、子类以及调用父类

脚本内容如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# 父类

class AddBook(object):

def __init__(self, name, phone):

self.name = name

self.phone = phone

def get_phone(self):

return self.phone

# 子类,继承

class EmplEmail(AddBook):

def __init__(self, nm, ph, email):

# AddBook.__init__(self, nm, ph)          #调用父类方法一

super(EmplEmail, self).__init__(nm, ph)   #调用父类方法二

self.email = email

def get_email(self):

return self.email

# 调用

if __name__ == "__main__":

Detian = AddBook(‘jack‘, ‘11223344556‘)

Meng = AddBook(‘lili‘, ‘11223344557‘)

print Detian.get_phone()

print AddBook.get_phone(Meng)

alice = EmplEmail(‘alice‘, ‘11223344558‘, ‘[email protected]‘)

print alice.get_email(), alice.get_phone()

2)类的组合使用

脚本内容如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

‘‘‘

1.class类的组合使用

2.手机、邮箱、QQ等是可以变化的(定义在一起),姓名不可变(单独定义)。

3.在另一个类中引用

‘‘‘

class Info(object):

def __init__(self, phone, email, qq):

self.phone = phone

self.email = email

self.qq = qq

def get_phone(self):

return self.phone

def update_phone(self, newphone):

self.phone = newphone

print "手机号更改已更改"

def get_email(self):

return self.email

class AddrBook(object):

‘‘‘docstring for AddBook‘‘‘

def __init__(self, name, phone, email, qq):

self.name = name

self.info = Info(phone, email, qq)

if __name__ == "__main__":

Peng = AddrBook(‘jack‘, ‘11223344556‘, ‘[email protected]‘, ‘123456‘)

print Peng.info.get_phone()

Peng.info.update_phone(11223344559)

print Peng.info.get_phone()

print Peng.info.get_email()

3)内置功能(函数()加与不加的区别)

脚本内容如下:

#!/usr/bin/env python

#coding: utf8

class  Book(object):

def __init__(self,title,author):

self.title = title

self.author = author

def __str__(self):

return self.title

def __call__(self):

print "%s is written by %s" % (self.title,self.author)

if __name__ == ‘__main__‘:

pybook = Book("Core Python","Wesley")

print pybook     #因为类中定义了__str__方法,此处打印出的内容是__str__的返回值。

pybook()      #调用pybook就是执行__call__方法中的代码。

时间: 2024-10-06 07:14:25

python类的使用的相关文章

【Python&数据结构】 抽象数据类型 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__方法在实例