[python 学习] 类
#!/usr/bin/python
# -*- encoding:utf-8 -*-
class Animal:
animal_num = 0 class Dog(Animal):
#类帮助文档
'this is help'
#两个下划线开头,类的私有属性,不能在类外部访问,类内部使用self.__dog_name访问
__Dog_name = 'dahuang'
dog_num = 0
#累的构造函数,初始化实例时调用
def __init__(self, name, color):
self.color = color
self.name = name
Dog.dog_num += 1 #类变量在内部类中调用 #self代表类的实例,类内部的函数必须包含且第一个参数为 self
def prt(self):
print self
print self.__class__ #self不是python关键字,可以使用其他代替
def prt_2(self_2):
print self_2
print self_2.__class__ def printDogName(self):
print self.name #__private_method类的私有方法,调用self.__private_method
def __get_Dog_name(self):
return self.__Dog_name def get_Dog_name(self):
return self.__get_Dog_name() #输出对象实例时调用(print)
#或使用str(obj)调用
def __str__(self):
return 'print 时调用' #repr(obj)
def __repr__(self):
return '直接输出对象,使用print打印时调用,或repr(obj)' # 析构方法
def __del__(self):
print '对象被删除' #实例化
d = Dog('jack','red') #同 print d
str(d)
#同 print d
repr(d)
#调用析构方法
# del d d.prt()
d.prt_2() print d.get_Dog_name() #dahuang #_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import * #通过 object._className_attrName访问累的私有变量
print d._Dog__Dog_name #dahuang
#放问类的私有方法同上
print d._Dog__get_Dog_name() #dahuang #添加属性
d.age = 10
#修改属性
d.age = 12
# del删除属性
del d.color #使用函数操作属性
hasattr(d,'age') #如果存在 ‘age’ 属性返回 true
getattr(d, 'age') #返回 ‘age’ 属性的值
setattr(d, 'age', 13) #添加属性 ‘age 的值为13
delattr(d, 'age') #删除属性 'age' #内置类属性
#__dict__:类的属性
#{'__module__': '__main__', 'printDogName': <function printDogName at 0x02B3B9B0>,
# 'prt_2': <function prt_2 at 0x02B3B970>, 'prt': <function prt at 0x02B3B8F0>,
# 'dog_num': 1, '__doc__': 'this is help', '__init__': <function __init__ at 0x02B3B9F0>}
print Dog.__dict__ #__name__:类名
#Dog
print Dog.__name__ #__module__:类定义所在的模块
#__main__
print Dog.__module__ #__bases__:类的所有父类构成的元素
#(<class __main__.Animal at 0x038AABC8>,)
print Dog.__bases__ #打印类说明
print Dog.__doc__
[python 学习] 类的更多相关文章
- day24 python学习 类 画元,命名空间作用域,组合,人狗大战升级
类命名空间与对象.实例的命名空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类有两种属性:静态属性和动态属性 静态属性就是直接在类中定义的变量 动态属性就 ...
- python学习|类和实例
什么叫实例对象呢?大家可以想象一下,[类]就像工厂的模具,以它为模板,造出来的成千上万的产品,才是被我们消费.购买.使用,真正融入我们生活的东西.这些产品,在Python中就叫[实例对象]. 往深了说 ...
- Python学习-类
类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化 在python中,一个对象的特征也称为属性(attribute),它所具有的的行为也称为方法(method) 对象 = 属性(特征)+方法(行 ...
- python学习-类属性和实例属性
#类属性和实例属性 class Tool(object): #类属性 total = 0 #静态方法 @classmethod def say(self): print("hello wor ...
- day23 python学习 类 人狗大战
面向过程 VS 面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 面向过程 优点是:极大的降低了 ...
- python学习-类的继承
1.继承的语法 2.多继承 3.override(子类重写父类的方法) 4.子类调用父类中被重写的实例方法 5.使用super函数调用父类的构造方法
- Python学习笔记(十五):类基础
以Mark Lutz著的<Python学习手册>为教程,每天花1个小时左右时间学习,争取两周完成. --- 写在前面的话 2013-7-24 23:59 学习笔记 1,Python中的大多 ...
- Python学习 Part7:类
Python学习 Part7:类 1. 作用域和命名空间 命名空间(namespace)就是一个从名称到对象的映射. 命名空间的一些实例:内置名称集(函数,像abs(),和内置异常名称),一个模块中的 ...
- python学习笔记4_类和更抽象
python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型 ...
随机推荐
- Educational Codeforces Round 16 D. Two Arithmetic Progressions (不互质中国剩余定理)
Two Arithmetic Progressions 题目链接: http://codeforces.com/contest/710/problem/D Description You are gi ...
- [CF Round603 Div2 F]Economic Difficulties
题目:Economic Difficulties 传送门:https://codeforces.com/contest/1263/problem/F 题意:给了两棵tree:Ta(拥有a个节点,节点编 ...
- 大数据笔记(六)——HDFS的底层原理:JAVA动态代理和RPC
一.Java的动态代理对象 实现代码如下: 1.接口类MyService package hdfs.proxy; public interface MyService { public void me ...
- SpringMVC开发手册
title: SpringMvc -- 开发手册 date: 2018-11-15 22:14:22 tags: SpringMvc categories: SpringMvc #分类名 type: ...
- 纯css实现手机通讯录
我们经常在手机上看到通讯录列表,这类布局一般有两个显著的效果 首字母吸顶 快速定位 下面我们来实现一下 页面结构 这里页面结构很简单,就是两个列表 <div class="con&qu ...
- Mybatis一对一关联查询
有两张表,老师表teacher和班级表class,一个class班级对应一个teacher,一个teacher对应一个class 需求是根据班级id查询班级信息(带老师的信息) 创建teacher和c ...
- SQLserver基础--连接查询、联合查询、索引
一.子查询补充: Exists的用法:select*from haha where exists(select*from bumen where bumen.code=haha.bumen,and b ...
- h5新标签介绍
html5新增了一些标签 这些标签都是语义标签,可以帮助我们更好的理解,代码中的意思:(都是双标签) 案例: 将语义标签翻译过来为 <div class="header"&g ...
- Beyond Compare4 激活
当你使用过一段时间后会提示有问题,需要激活或者什么. 解决办法: 找到这个路径并删除其下Beyond Compare 4文件夹即可正常使用. C:\Users\******\AppData\Roami ...
- VMware 虚拟化编程(4) — VDDK 安装
目录 目录 前文列表 VDDK 安装 VDDK 前文列表 VMware 虚拟化编程(1) - VMDK/VDDK/VixDiskLib/VADP 概念简析 VMware 虚拟化编程(2) - 虚拟磁盘 ...