#!/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__

最新文章

  1. 【记录】JS 获取图片原始尺寸-防止图片溢出
  2. iOS开发笔记14:微博/微信登录与分享、微信/支付宝支付
  3. JS/JQ常见兼容辅助插件
  4. vim 打开Linux下文件每一行后面都有^M的样式
  5. Openstack的keystone的user-role-list命令的使用
  6. css在IE和Firefox下的兼容性
  7. BDC、CATT批量数据维护
  8. ORA-01109:数据库未打开
  9. bzoj 2555 SubString(SAM+LCT)
  10. Codeforces Gym 100418J Lucky tickets 数位DP
  11. CButtonST的用法详解【转】
  12. GOJ1150(矩阵快速幂)
  13. 【1414软工助教】团队作业4——第一次项目冲刺(Alpha版本) 得分榜
  14. Python tutorial阅读之函数的定义与使用
  15. halcon 模板匹配(最简单)
  16. 1.Memcached 中文文档 - 概论(译官方文档)
  17. 存储器结构、cache、DMA架构分析--【原创】
  18. [math][mathematica] mathematica入门
  19. BASIC-5_蓝桥杯_查找整数
  20. Linux 中的 Service

热门文章

  1. Oracle JET(三)Oracle JET 响应布局
  2. 基于modelforms组件实现注册功能
  3. VueX中直接修改数据报错,修改一维数组,二维数组,报错的原因
  4. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第1节 Scanner类_2-概述及其API文档
  5. IIS 配置备份和还原
  6. 常用的adb命令收集
  7. VUE 全局监听sessionStorage变化
  8. lua-resty-kafka erro xxxx could not be resolved (3: Host not found)
  9. oracle 11g 数据库恢复技术 ---01 重做日志
  10. HslControls