day14——类的一般形式、Python构造器、类的继承

类的一般形式

创建类我们一般用class关键字来创建一个类,class后面跟类名字,可以自定义,最后以冒号结尾,如下所示:

class ClassName:

‘‘‘类的说明‘‘‘

类的内容

类的内容可以写类的全局变量,方法等

下面举个例子:

class ren(object):

‘‘‘this class is abort ren class‘‘‘  #类的说明一定要三个引号引起来

name = ‘meizi‘

sex = ‘F‘

def hello(selfself):

print(‘Hello World!‘)

a = ren()

print(type(a))

print(a.name)

print(a.sex)

a.hello()

打印结果为

解释:

1.object默认是所有类的父类,不写默认继承object

2.a = ren(),就是把类ren实例化

3.以上打印a的类型就是一个ren的类

4.调用类的方法和变量,直接实例化类的后面直接用"."调用就可以

5.如果想给实例a添加变量或者赋值,可以直接用"."加变量赋值就。

类的构造器

__init__构造函数,在生成对象时调用,由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去:

class ren():

def __init__(self,name,sex):

self.name = name

self.sex = sex

def hello(self):

print(‘hello {0}‘.format(self.name))

test = ren(‘yangling‘,‘M‘)

test.hello()

打印结果为:

解释:

1.在传递参数的时候,必须是传递两个参数,name和score,不然报错

2.self的参数不用会传递,Python自动会所student实例化的s传递给第一个参数,即self

类的继承

继承,顾名思义就知道是它的意思,举个例子说明,你现在有一个现有的A类,现在需要写一个B类,但是B类是A类的特殊版,A类称为父类,B类称为子类,子类除了继承父类的所有属性和方法,还可以自定义自己的属性和方法,大大增加了代码的复用性。

在我们本章的第一节中,我们可以继承了object类,object类是所有类的父类,所有的类都默认继承object类,它是一个超级类,如果不写,默认继承object。

继承类的格式:

class A(父类):

...

Python的类支持多继承,而java没有多继承,但是可以有多接口的实现,Python的多继承很简单,下面我们来看一下多继承的格式:

class A(object):      # 定义类A

pass

class B(object):     #定义类B

pass

class C(A,B):           #继承类A和B

pass

多继承其实在需要在父类的位置,直接写多个父类就可以,然后用","分开就可以了,C类就同时继承了A类和B类。

Python类的继承注意事项:

1.在继承中类的构造(__init()方法)不会自动调用,它需要在子类的构造中亲自调用。

2.Python总是先在子类中查找,如果没有没有找到,才会去父类中查找。

例子1:

class A(object): # 定义类A

pass

class B(object): #定义类B

pass

class C(A,B): #继承类A和B

pass

class parent():

name = ‘parent‘

sex = ‘F‘

def __init__(self):

print("my name is {0}".format(self.name))

def get_name(self):

return self.name

def get_sex(self):

return self.sex

class child(parent):

name = ‘child‘

sex = "N"

def __init__(self):

print(‘my name is {0}‘.format(self.name))

def hello(self):

print(‘hello world‘)

a = child()

a.hello()

print(a.get_name())

print(a.get_sex())

打印结果为:

时间: 2024-11-05 12:27:21

day14——类的一般形式、Python构造器、类的继承的相关文章

python Class(类) and Object Oriented(面向)

Python类与面向对象    程序=指令+数据 (或算法+数据结构).代码可以选择以指令为核心或以数据为核心进行编写.    两种范型        (1)以指令为核心:围绕"正在发生什么"进行编写(面向过程编程:程序具有一系列线性步骤:主体思想是代码作用于数据)以指令为中心,程序员的主要工作在于设计算法.        (2)以数据为核心:围绕"将影响谁"进行编写(面向对象编程<oop>:围绕数据及为数据严格定义的接口来组织程序,用数据控制对代码的访

【python】-- 类的创建、__new__、__metaclass___

类的创建 前面的随笔都是关于类的知识,通过类创建对象,那这个类到底是怎么产生的呢? 1. 传统创建类 class Foo(object): def __init__(self,name): self.name = name f = Foo("shuaigaogao") f 是通过 Foo 类实例化的对象,其实,不仅 f 是一个对象,Foo类本身也是一个对象,因为在Python中一切事物都是对象,按照一切事物都是对象的理论:obj对象是通过执行Foo类的构造方法创建,那么Foo类对象应该

Python 的类的下划线命名有什么不同?

1,以一个下划线开头的命名 ,如_getFile2,以两个下划线开头的命名 ,如__filename3,以两个下划线开头和结尾的命名,如 __init__()4,其它这些命名有什么不同吗 首先是单下划线开头,这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入.不过值得注意的是,如果使用 import a_module 这样导入模块,仍然可以用 a_module._some_var

Python基础- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)

标签: python对象 2017-07-01 16:28 79人阅读 评论(0) 收藏 举报  分类: python(11)  版权声明:本文为广大朋友交流学习,如有纰漏望不吝赐教,若存在版权侵犯请及时与我联系 目录(?)[+] 一.初识类和对象 在python3中类型就是类 先定义类在产生相对应的对象,也就是现有了概念再有了实体 class Garen: camp = 'Demacia' def attack(self): print('attack') 1.如何使用类 在python3:

Python面向对象-类成员

类的成员可以分为三大类:字段.方法和属性: 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份. (一)字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同 1 class Province: 2 # 静态字段 3 country = "China" 4 5 def __init__(self, name): 6 #

【Python】类的初试

测试虽然一直在定义并使用一些简单的类及方法,但对类的基础性的一些方法都不知晓,对问题一知半解,感觉不是好的方式.今天抽空看一些基础内容,做一些笔记吧,from <Python 核心编程>~ 一.类 1.定义:类是对象的定义,而实例是"真正的实物",它存放了类中所定义的对象的具体信息. 2.创建:下面展示如何创建一个类: class MyNewObjectType(bases): 'define MyNewObjectType class ' class suite 关键字是

python 元类的简单解释

本文转自博客:http://www.cnblogs.com/piperck/p/5840443.html 作者:piperck python 类和元类(metaclass)的理解和简单运用 (一) python中的类 首先这里讨论的python类,都基于继承于object的新式类进行讨论. 首先在python中,所有东西都是对象.这句话非常重要要理解元类我要重新来理解一下python中的类 class Trick(object): pass 当python在执行带class语句的时候,会初始化一

python:类5——Python 的类的下划线命名有什么不同?

首先是单下划线开头,这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入.不过值得注意的是,如果使用 import a_module 这样导入模块,仍然可以用 a_module._some_var 这样的形式访问到这样的对象. 在 Python 的官方推荐的代码样式中,还有一种单下划线结尾的样式,这在解析时并没有特别的含义,但通常用于和 Python 关键词区分开来,比如如果我们需

Python虚拟机类机制之自定义class(四)

用户自定义class 在本章中,我们将研究对用户自定义class的剖析,在demo1.py中,我们将研究单个class的实现,所以在这里并没有关于继承及多态的讨论.然而在demo1.py中,我们看到了许多类的内容,其中包括类的定义.类的构造函数.对象的实例化.类成员函数的调用等 demo1.py class A(object): name = "Python" def __init__(self): print("A::__init__") def f(self):