zoukankan      html  css  js  c++  java
  • python之类

    1 初始类

    1 声明类 (和声明函数很相似)

    类的定义格式

    class 类名:

        '类的文档字符串'

        类体

    2 创建一个类:

    class Data:

        pass

    Python编程中习惯类名使用单数单词并且首字母大写

    类是数据与函数的结合,二者称为类的属性

    class Garen:        #定义英雄盖伦的类,不同的玩家可以用它实例出自己英雄;

        camp='Demacia'  #所有玩家的英雄(盖伦)的阵营都是Demacia;

        def attack(self,enemy):   #普通攻击技能,enemy是敌人;

            enemy.life_value-=self.aggressivity #根据自己的攻击力,攻击敌人就减掉敌人的生命值。

    2 类的作用1:属性引用

    属性引用(类名.属性)

    (1)引用类的数据属性(类名.变量名)

    print(Garen.camp)   # 引用类的数据属性,该属性与所有对象/实例共享

    输出结果为:

    Demacia

    (2)引用类的函数属性(类名.函数名)

    print(Garen.attack)   #引用类的函数属性,该属性也共享

    输出结果为:

    <function Garen.attack at 0x00000059CE8FAF28>

    (3)类的属性操作

    Garen.name='Garen1'    #增加属性

    print(Garen.name)       #查询属性

    输出结果为:

    Garen1

    del Garen.name         #删除属性

    print(Garen.name)

    输出结果为:

    AttributeError: type object 'Garen' has no attribute 'name' #报错

    Garen.camp="aaaa"      #修改属性

    print(Garen.camp)

    输出结果为:

    aaaa

    3 类的作用2:实例化

    (1)__init__实例化

    类名加括号就是实例化,会自动触发__init__函数的运行,可以用他来为每个实例定制自己的特性

    class Garen:

        camp='Demacia'

        def __init__(self,nickname,aggressivity=58,life_value=455):

            self.nickname=nickname  #为自己的盖伦起个别名;

            self.aggressivity=aggressivity #英雄都有自己的攻击力;

            self.life_value=life_value #英雄都有自己的生命值;

        def attack(self,enemy):

            print("attack %s" % enemy)

    实例化:类名+括号

    g1=Garen('草丛伦')

    #就是在执行Garen.__int__(g1,’草丛伦’),然后执行__init__内的代码g1.nickname=’草丛伦’等

    (2)self作用

    self的作用是在实例化时自动将对象/实例本身传给__init__的第一个参数,self可以是任意名字,但是self是大家公认的。

    这种自动传递的机制还体现在g1.attack的调用上,后续会介绍

    一:我们定义的类的属性到底存到哪里了?有两种方式查看

    dir(类名):查出的是一个名字列表

    类名.__dict__:查出的是一个字典,key为属性名,value为属性值

    二:特殊的类属性

    类名.__name__# 类的名字(字符串)

    类名.__doc__# 类的文档字符串

    类名.__base__# 类的第一个父类(在讲继承时会讲)

    类名.__bases__# 类所有父类构成的元组(在讲继承时会讲)

    类名.__dict__# 类的字典属性

    类名.__module__# 类定义所在的模块

    类名.__class__# 实例对应的类(仅新式类中)

  • 相关阅读:
    新概念第二册(1)--英语口语听力课1
    外企面试课程(一)---熟悉常见的缩略词
    公司 邮件 翻译 培训 长难句 结课
    workflow
    公司 邮件 翻译 培训 长难句 20
    公司 邮件 翻译 培训 长难句 19
    Engineering Management
    公司 邮件 翻译 培训 长难句 18
    公司 邮件 翻译 培训 长难句 17
    第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头
  • 原文地址:https://www.cnblogs.com/asaka/p/6758359.html
Copyright © 2011-2022 走看看