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__# 实例对应的类(仅新式类中)

python之类的更多相关文章

  1. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  2. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  3. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  4. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  5. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

  6. 使用Python保存屏幕截图(不使用PIL)

    起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...

  7. Python编码记录

    字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...

  8. Apache执行Python脚本

    由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...

  9. python开发编译器

    引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...

  10. 关于解决python线上问题的几种有效技术

    工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...

随机推荐

  1. UE4 ShooterGame Demo的开火的代码

    之前一直没搞懂按下鼠标左键开火之后,代码的逻辑是怎么走的,今天看懂了之前没看懂的部分,进了一步 ShooterCharacter.cpp void AShooterCharacter::OnStart ...

  2. thinkphp调用微信jssdk开发

    一:准备文件,并将文件置于网站根目录下 access_token.json {"access_token":"","expire_time" ...

  3. RxJava2.0相关教程

    这可能是最好的RxJava 2.x 教程(完结版) https://www.jianshu.com/p/0cd258eecf60 RxJava2.0——从放弃到入门 https://www.jians ...

  4. ubuntu ibus pinyin输入法异常

    http://blog.csdn.net/granvillegao/article/details/41115211 命令行运行 ibus-setup 在常规页面,取消了“在应用程序窗口中启用内嵌编辑 ...

  5. mysql排序(四)

    MySQL 排序 我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据. 如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段 ...

  6. mySql中SUBSTRING_INDEX函数用法

    SUBSTRING_INDEX(str,delim,count) 返回字符串 str 中在第 count 个出现的分隔符 delim 之前的子串.如果 count 是一个正数,返回从最后的(从左边开始 ...

  7. Codeforces 912C Perun, Ult!

    Perun, Ult! 恶心题, 好多细节... 啊, 好恶心啊. #include<bits/stdc++.h> #define LL long long #define fi firs ...

  8. js,JQuery实现,带筛选,搜索的select

    代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title& ...

  9. Codeforces 1017F The Neutral Zone 数论

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF1017F.html 题目传送门 - CF1017F 题意 假设一个数 $x$ 分解质因数后得到结果 $x=p ...

  10. 数学模型:3.非监督学习--聚类分析 和K-means聚类

    1. 聚类分析 聚类分析(cluster analysis)是一组将研究对象分为相对同质的群组(clusters)的统计分析技术 ---->> 将观测对象的群体按照相似性和相异性进行不同群 ...