object_test.py
#方法,属性,私有化加双下划线
'''
__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的更多相关文章
- 老男孩python学习自修第十八天【面向对象】
1.类与对象(构造方法与实例化) #!/usr/bin/env python # _*_ coding:UTF-8 _*_ class Province: def __init__(self, nam ...
- python调用py中rar的路径问题。
1.python调用py,在py中的os.getcwd()获取的不是py的路径,可以通过os.path.split(os.path.realpath(__file__))[0]来获取py的路径. 2. ...
- Python导入其他文件中的.py文件 即模块
import sys sys.path.append("路径") import .py文件
- import renumber.py in pymol
cp renumber.py /usr/local/lib/python2.7/dist-packages/pymol import renumber or run /path/to/renumber ...
- python gettitle.py
#!/usr/bin/env python # coding=utf-8 import threading import requests import Queue import sys import ...
- 解决 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 ...
- caffe机器学习自带图片分类器classify.py实现输出预测结果的概率及caffe的web_demo例子运行实例
caffe机器学习环境搭建及python接口编译参见我的上一篇博客:机器学习caffe环境搭建--redhat7.1和caffe的python接口编译 1.运行caffe图片分类器python接口 还 ...
- 【转】Windows下使用libsvm中的grid.py和easy.py进行参数调优
libsvm中有进行参数调优的工具grid.py和easy.py可以使用,这些工具可以帮助我们选择更好的参数,减少自己参数选优带来的烦扰. 所需工具:libsvm.gnuplot 本机环境:Windo ...
- MySqlNDB使用自带的ndb_setup.py安装集群
在用Mysql做集群时,使用Mysql的NDB版本更易于集群的扩展,稳定和数据的实时性. 我们可以使用Mysql自带的工具进行集群安装与管理:ndb_setup.py.位于Mysql的安装目录bin下 ...
随机推荐
- Go -- socket read的内容以16进制输出
buf := make([]) reqLen, err := conn.Read(buf) // 遍历, 转为16进制 buffer := new(bytes.Buffer) for _, b := ...
- git extensions远程配置
http://blog.csdn.net/pgmsoul/article/details/7860393 远程地址是如下格式:git@github.com:yaoname/project.git 保存 ...
- utuntu16.04安装tensorflow1.4-gpu
之前一直在windows下使用tensorflow,对cpu和gpu的安装都是比较顺利,都是使用anaconda环境下,创建虚拟conda环境,这样方便不同python版本的管理. 一直也想尝试使用u ...
- maven运行update命令时报org/apache/maven/shared/filtering/MavenFilteringException错误
在eclipse中对准项目运行maven->update project命令时报错:org/apache/maven/shared/filtering/MavenFiltering ...
- iOS 多线程技术2
iOS 多线程技术2 NSOperation NSInvocationOperation //创建一个队列 NSOperationQueue *queue = [[NSOperationQueue a ...
- Git以及github的使用方法(四),版本回退
现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. ...
- hdu5340 Three Palindromes(manacher算法)
题目描写叙述: 推断能否将字符串S分成三段非空回文串. 解题思路: 源码: #include <cstdio> #include <algorithm> #define MAX ...
- pwm驱动原理和代码实现
学这个pwm真是非常曲则,首先是看s3c2440的datasheet,全英文的,并且还有硬件的时序图(非常多是硬件的工作原理,和软件控制不相关). 看了非常久加上网上看了资料才把这个pwm弄通. 当然 ...
- linux c语言 select函数使用方法
linux c语言 select函数使用方法 表头文件 #i nclude<sys/time.h> #i nclude<sys/types.h> #i nclude<un ...
- 英特尔和Red Hat合作实现Gnome桌面的Wayland支持
在发布支持XMir的Linux图形驱动程序xf86-video-intel 2.99.901后数天,英特尔宣布撤回对XMir的支持,XMir补丁不会合并到上游项目.XMir是Mir显示服务器的X11兼 ...