#方法,属性,私有化加双下划线
'''
__a 从外部无法访问,但是类的内部可以访问。实际上还是能在类外访问这些私有方法,尽管不应该这么做:s._A__a
如果不需要使用这种方法但是又不行让其他对象不要访问内部数据,可以使用单下划线
前面有下划线的名字都不会被带星号的imports语句导入
'''
class Person:
def setname(self,name):
self.name=name
def getname(self):
return self.name
def greeting(self):
print("Hello world! I'm %s" % self.name)
name1=Person()
name2=Person()
name1.setname('aa')
name2.setname('bb')
name1.greeting()
name2.greeting() print(name1.name) #从外部直接访问属性
name2.name='cc'
name2.greeting() class Test:
name='aa'
def method(self):
print('self.%s'% self.name)
def function():
print('no self')
a=Test()
b=a.method #绑定方法到变量上
b() a.method=function #绑定方法到普通函数上
a.method() #注意区别
#当没有self.num++时,C.num++会影响类,实例的num
#当调用过1次self.num++或self.num='sth'后,C.num++不会影响实例的num,只有self.num++会影响
#使用C.num必须显示声明num。只使用self.num,不用声明num(但是++前要先赋值)
class B:
num=0
def initB(self):
B.num+=1
def initb(self):
self.num+=1
class B:
num=0
def initB(self):
B.num+=1
self.num+=1
class B:
num=0
def initB(self):
self.num+=1
B.num+=1 #超类的继承顺序,先继承的类中的方法会重写后继承的类中的方法,包括构造方法
class Cal:
def cal(self, express):
self.value=eval(express)
def talk(self):
print('cal\'talk ', self.value)
class Talk:
def talk(self):
print('value: ', self.value)
class TalkCal(Cal, Talk):
pass
tc=TalkCal()
tc.cal('1+2')
tc.talk()
class TalkCal(Talk, Cal):
pass
tc=TalkCal()
tc.cal('1+2')
tc.talk() #接口检查
hasattr(tc, 'talk')
hasattr(tc, 'pink') callable(getattr(tc, 'talk', None))
callable(getattr(tc, 'pink', None))
#或
hasattr(getattr(a,'fun3'), '__call__')

object_test.py的更多相关文章

  1. 老男孩python学习自修第十八天【面向对象】

    1.类与对象(构造方法与实例化) #!/usr/bin/env python # _*_ coding:UTF-8 _*_ class Province: def __init__(self, nam ...

  2. python调用py中rar的路径问题。

    1.python调用py,在py中的os.getcwd()获取的不是py的路径,可以通过os.path.split(os.path.realpath(__file__))[0]来获取py的路径. 2. ...

  3. Python导入其他文件中的.py文件 即模块

    import sys sys.path.append("路径") import .py文件

  4. import renumber.py in pymol

    cp renumber.py /usr/local/lib/python2.7/dist-packages/pymol import renumber or run /path/to/renumber ...

  5. python gettitle.py

    #!/usr/bin/env python # coding=utf-8 import threading import requests import Queue import sys import ...

  6. 解决 odoo.py: error: option --addons-path: The addons-path 'local-addons/' does not seem to a be a valid Addons Directory!

    情况说明 odoo源文件路径-/odoo-dev/odoo/: 我的模块插件路径 ~/odoo-dev/local-addons/my-module 在my-module中创建了__init__.py ...

  7. caffe机器学习自带图片分类器classify.py实现输出预测结果的概率及caffe的web_demo例子运行实例

    caffe机器学习环境搭建及python接口编译参见我的上一篇博客:机器学习caffe环境搭建--redhat7.1和caffe的python接口编译 1.运行caffe图片分类器python接口 还 ...

  8. 【转】Windows下使用libsvm中的grid.py和easy.py进行参数调优

    libsvm中有进行参数调优的工具grid.py和easy.py可以使用,这些工具可以帮助我们选择更好的参数,减少自己参数选优带来的烦扰. 所需工具:libsvm.gnuplot 本机环境:Windo ...

  9. MySqlNDB使用自带的ndb_setup.py安装集群

    在用Mysql做集群时,使用Mysql的NDB版本更易于集群的扩展,稳定和数据的实时性. 我们可以使用Mysql自带的工具进行集群安装与管理:ndb_setup.py.位于Mysql的安装目录bin下 ...

随机推荐

  1. angular http ajax header

    myAppModule.config(['$httpProvider', function($httpProvider) { $httpProvider.defaults.headers.common ...

  2. android wifi state and wifi ap state

    /** * Wi-Fi is currently being disabled. The state will change to {@link #WIFI_STATE_DISABLED} if * ...

  3. log4net菜鸟指南二----生成access和txt

    前言 有可能目标计算机缺少某些组件,导致无法生成access文件,或者打不开文件,这时txt文件就可以方便的使用了 一,标准的控制台程序输出日志到access <?xml version=&qu ...

  4. 深度探究apk安装过程

    一.先验知识 0.PcakageaManagerService版本号变化 1.概述 2.PackageManagerService服务启动流程 3. PackageManagerService入口 二 ...

  5. 理解MySql事务隔离机制、锁以及各种锁协议

    一直以来对数据库的事务隔离机制的理解总是停留在表面,其内容也是看一遍忘一边.这两天决定从原理上理解它,整理成自己的知识.查阅资料的过程中发现好多零碎的概念假设串起来足够写一本书,所以在这里给自己梳理一 ...

  6. Android与服务器端数据交互(基于SOAP协议整合android+webservice)

    http://www.cnblogs.com/zhangdongzi/archive/2011/04/19/2020688.html 上一节中我们通过http协议,采用HttpClient向服务器端a ...

  7. struct platform_device中的id成员

    include/linux/platform_device.h #define PLATFORM_DEVID_NONE (-1) #define PLATFORM_DEVID_AUTO (-2) dr ...

  8. UVa11234 表达式

    题意:题目意思是给出后缀表达式.能够通过栈来计算表达式的值,即转化为中缀表达式. 然后如果如今不用栈.而是用队列来操作.即每遇到一操作符时.进行两次pop和一次push.(这里注意,先pop出来的作为 ...

  9. caffe搭建--caffe- win10 vs2015 编译(支持GPU)--注意在cmake的时候需要根据情况仔细修改配置

    --http://blog.csdn.net/longji/article/details/60964998 注意: 在cmake的时候需要根据情况仔细修改配置,比如,如果gpu的能力不足3.0的话, ...

  10. Canvas学习笔记——弹动

    如果有一根橡皮筋拴住一个小球,将小球拉开一定距离后释放,小球将会弹动.距离越远,橡皮筋对小球施加的外力越大,小球的加速度就越大.也就是说,小球的加速度与距离是成正比例关系的.这和缓动很相似,缓动是速度 ...