博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python类的一般形式和继承
阅读量:7082 次
发布时间:2019-06-28

本文共 2422 字,大约阅读时间需要 8 分钟。

  hot3.png

Python类的一般形式和继承

 

1、 类的一般形式

创建类,一般用class关键字创建一个类,

class ClassName:

    '''类的说明'''
   
类的内容

 

 

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

 

class ren(object):    '''this class is abort class'''    name = 'meizi'    sex = 'F'    def hello(selfself):        print('hello world!')a = ren()print(type(a))print(a.name)print(a.sex)a.hello()

结果:

<class '__main__.ren'>

meizi

F

hello world!

 

2、 类的构造器

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

 

class Student(object):    def __init__(self, name, score):        self.name = name        self.score = score

__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。

有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去

 

class Student(object):    def __init__(self, name, score):        self.name = name        self.score = scorea = Student('abc',20)print(a.name)print(a.score)

结果:

abc

20

 

 

3、 类的继承

当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。

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

class A(父类):    pass

 

python的类支持多继承

class A:    #定义类A    passclass B(A):     #定义类B,类B继承类A    passclass C(A,B):   #定义类C,继承类A,类B    pass

例:

class ren:    name = 'ren'    sex = 'F'    def __init__(self):        print('ren is {0}'.format(self.name))    def get_name(self):        return self.name    def get_sex(self):        return self.sexclass child(ren):    name = 'test'    sex = 'M'    def __init__(self):        print('my name is {0}'.format(self.name))    def hello(self):        print('hello world!')    def get_name(self):        return self.name    def get_sex(self):        return self.sextest = child()test.hello()print(test.get_name())print(test.get_sex())

结果:

my name is test

hello world!

test

M

 

例:

class ren:    name = 'ren'    sex = 'F'    def __init__(self):        print('ren is {0}'.format(self.name))    def get_name(self):        return self.name    def get_sex(self):        return self.sexclass child(ren):    # name = 'test'    # sex = 'M'    def __init__(self):        print('my name is {0}'.format(self.name))    def hello(self):        print('hello world!')    def get_name(self):        return self.name    def get_sex(self):        return self.sextest = child()test.hello()print(test.get_name())print(test.get_sex())

结果:

my name is ren

hello world!

ren

F

转载于:https://my.oschina.net/peizh/blog/1563401

你可能感兴趣的文章
python/c++ 深拷贝与浅拷贝(转)
查看>>
mysql数据库的常见问题;
查看>>
CentOS7安装Tomcat
查看>>
动态重载与静态重载
查看>>
js循环的是数组不是对象
查看>>
tomcat 配成用 https方式访问
查看>>
木马各种隐藏技术全方位大批露,病毒或木马
查看>>
BitmapFactory.Options详解
查看>>
AutoLayout 使用之代码实现(VFL)
查看>>
Freemarker常用内建函数
查看>>
读 linux_101_hacks 有感
查看>>
运用@media实现网页自适应中的几个关键分辨率
查看>>
redis配置认证密码
查看>>
码农十年连载一
查看>>
Notice: Undefined index: REQUEST_URI in
查看>>
[webAPP项目]基于MUI框架开发APP功能点开发详解大纲
查看>>
Kotlin 笔记
查看>>
搭建Nginx+Java环境(转)
查看>>
华为13年机试题
查看>>
JSP 生命周期
查看>>