#方法,属性,私有化加双下划线
'''
__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. Office 顿号怎么输

    中文状态下回车上面一个按键就是  

  2. Android—一次清除所有Activity

    首先,自定义一个ActivityManager管理类,用于管理栈中的Activity public class ActivityManager{ private static final String ...

  3. Windows下编程2----- C语言常用函数举例

    几个小函数 1.    //MessageBoxA(0,"网络故障,重新登录","qq error",3); //弹出对话框 2.    //ShellExec ...

  4. 【转】Windows2008上传大文件的解决方法(iis7解决上传大容量文件)

    2008上传大文件的解决方法:http://wenku.it168.com/d_000091739.shtml 2003上传大文件的解决方法:http://tech.v01.cn/windowsxit ...

  5. 3D打印技术之切片引擎(4)

    [此系列文章基于熔融沉积( fused depostion modeling, FDM )成形工艺] 这一篇文章我讲一下多边打印的问题,多边打印是切片引擎的一项关键的技术. 图1 双边打印 首先.它能 ...

  6. ARP协议(1)什么是ARP协议

    这是最近在看<TCP/IP具体解释>系列书总结出来的,之后会陆续把其它协议部分分享出来. 我尽量以简单易读.易懂的方式呈现出来,可是,因为文笔和水平有限.有些地方或许存在描写叙述上的不足或 ...

  7. 【CODEFORCES】 B. Dreamoon and Sets

    B. Dreamoon and Sets time limit per test 1 second memory limit per test 256 megabytes input standard ...

  8. Java EJB JBoss

    JBoss:JBoss是web服务器的一种,主要做EJB容器,和tomcat集成就可以jsp,servlet,ejb通吃了JBoss有两种版本,一种是独立的,一种是和tomcat集成的,当然都是免费的 ...

  9. Long-term stable release maintenance

    http://en.wikipedia.org/wiki/Linux_kernel 2014.5.28 2.6.32 2 December 2009[122] 2.6.32.62[123] Willy ...

  10. lowB三人组代码示例

    冒泡排序:列表在内存重只存一份,所以不需要重复赋值 import random from timewrap import * #时间装饰器 # 初级版本 @cal_time def bubble_so ...