Python类-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

Python类

简介:
+关注继续查看

类(class)

python中的类是描述具有相同属性和方法的对象的集合类的一般形式:

class ClassName:

    '''类的说明'''

    类的内容

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

例子:

class ren(object):

    '''this is a new class'''

    name = 'meinv'

    sex = 'woman'

#类的实例化

a = ren()

print(type(a))

print(a.name)

print(a.sex)

a.age = 10

print(a.age)

结果:

<class '__main__.ren'>

meinv

woman

10


类的构造器

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

例子:

#所有类都继承object类,不写则默认是继承object类

class Student(object):

    #类的构造器,调用类的时候self可以不指定,python解释器默认将self指定到自身

    def __init__(self, name, score):

        self.name = nam

        self.score = score

例子2:

class Student(object):

def __init__(self, name, score):

self.name = name

self.score = score

s = Student('abc', 123)

print(s.name)

print(s.score)

输出:

abc


123


类的继承

Python的类支持多继承,多继承的格式如下,使用逗号分隔:

例子:

class A:

    ...

class B:

    ...
class C(A, B):

    ...
类的继承中,Python首先使用子类中的方法,如果子类中没有则去父类中寻找。变量也相同,首先寻找子类中的变量,没有找到后才去父类中寻找。

例子2:

class parent:

    name = 'parent'
    age = 100
    def __init__(self):
        print('my name is parent')
    def get_name(self):
        return self.name
    def get_age(self):
        return self.age
class child(parent):
    def __init__(self):
        print('my name is clild')
    def hello(self):
        print('hello child')
a = child()
a.hello()
print(a.get_name())
print(a.get_age())
输出:
my name is clild
hello child
parent
100


类的重写

Super()方法

#在class parent(object):定义父类的时候,一定要写继承object类,不然会报错可以解决

class parent(object):

    name = 'parent'

    age = 100

    def __init__(self):

        print('my name is parent')

    def get_name(self):

        return self.name

    def get_age(self):

        return self.age


class child(parent):

    def __init__(self):

        super(child, self).__init__()

        #parent.__init__()

        #使用父类.方法的方式直接重写,但是类中需要重写的内容较多时不方便

        print('my name is child.')

    def hello(self):

        print('hello child')

a = child()

a.hello()

print(a.get_name())

print(a.get_age())

输出:

my name is parent

my name is child

hello child

parent

100


类的私有变量

单下划线开头表示protected类型变量,在一个模块中以单下划线开头的变量和函数被默认当作内部函数。即保护类型只能允许其本身与子类进行访问。 当使用“from a_module import *”时,不会将以一个下划线开头的对象引入 ;如果使用 import a_module 这样导入模块,仍然可以用 a_module._some_var 这样的形式访问到这样的对象。

双下划线表示私有类型的变,只能允许这个类本身进行访问,连子类也不可以用。

前后双下划线定义的是特列方法。用户控制的命名空间内的变量或是属性,如__init__, __import__。只有当文档有说明时使用,不要自己定义这类变量。 (就是说这些是python内部定义的变量名)

例子

classPersonDemo():

    def __init__(self):

        self.__name=''

        self.__age=0

    def get_name(self):

        return self.__name

    def set_name(self,value):

        self.__name=value

a=PersonDemo()

a.set_name('kwsy')

print a.get_name()


内置类属性

__dict__ : 类的属性(包含一个字典,由类的数据属性组成)

__doc__ :类的文档字符串

__name__: 类名

__module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)

__bases__ : 类的所有父类构成元素(包含了以个由所有父类组成的元组)




本文转自 粗粮面包 51CTO博客,原文链接:http://blog.51cto.com/culiangmianbao/1979467,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
7375 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
9665 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
11161 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
11687 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
8130 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
4455 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
5961 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
20978 0
13694
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载