py2和py3有哪些语法帝国时代3win7不兼容容的地方?

1645人阅读
注:本文的作者是 Ed Schofield。原文的地址为: Cheat Sheet: Writing Python 2-3 compatible code
该笔记向你展示了编写不会过时的兼容 Python 2 和 Python 3 的代码风格。
它是 Ed Schofield 在 PyCon AU 2014 的演讲,“ Writing 2/3 compatible code ”。
最低版本:
Python 2: 2.6+ Python 3: 3.3+
一些下面的 imports 适用于使用 pip 安装在 PyPI 上安装:
import future
# pip install future
import past
# pip install past
import six
# pip install six
以下的脚本也适用于 pip 安装:
# pip install futurize
pasteurize
# pip install pasteurize
查看 http://python-future.org 和 https://pythonhosted.org/six/ 获取更多消息。
基本语法差异
# Python 2 only:
print 'Hello'
# Python 2 and 3:
print('Hello')
为了打印出多个 strings。 import print_function 来防止 Py2 把它解释成一个元组。
# Python 2 only:
print 'Hello', 'Guido'
# Python 2 and 3:
from __future__ import print_function
# (at top of module)
print('Hello', 'Guido')
# Python 2 only:
print && sys.stderr, 'Hello'
# Python 2 and 3:
from __future__ import print_function
print('Hello', file=sys.stderr)
# Python 2 only:
print 'Hello',
# Python 2 and 3:
from __future__ import print_function
print('Hello', end='')
# Python 2 only:
raise ValueError, &dodgy value&
# Python 2 and 3:
raise ValueError(&dodgy value&)
使用 traceback 抛出异常:
# Python 2 only:
traceback = sys.exc_info()[2]
raise ValueError, &dodgy value&, traceback
# Python 3 only:
raise ValueError(&dodgy value&).with_traceback()
# Python 2 and 3: option 1
from six import reraise as raise_
from future.utils import raise_
traceback = sys.exc_info()[2]
raise_(ValueError, &dodgy value&, traceback)
# Python 2 and 3: option 2
from future.utils import raise_with_traceback
raise_with_traceback(ValueError(&dodgy value&))
异常链 (PEP 3134):
class DatabaseError(Exception):
# Python 3 only
class FileDatabase:
def __init__(self, filename):
self.file = open(filename)
except IOError as exc:
raise DatabaseError('failed to open') from exc
# Python 2 and 3:
from future.utils import raise_from
class FileDatabase:
def __init__(self, filename):
self.file = open(filename)
except IOError as exc:
raise_from(DatabaseError('failed to open'), exc)
# Testing the above:
fd = FileDatabase('non_existent_file.txt')
except Exception as e:
assert isinstance(e.__cause__, IOError)
# FileNotFoundError on Py3.3+ inherits from IOError
捕获异常:
# Python 2 only:
except ValueError, e:
# Python 2 and 3:
except ValueError as e:
整除(rounding down):
# Python 2 only:
assert 2 / 3 == 0
# Python 2 and 3:
assert 2 // 3 == 0
“True division” (float division):
# Python 3 only:
assert 3 / 2 == 1.5
# Python 2 and 3:
from __future__ import division
# (at top of module)
assert 3 / 2 == 1.5
“Old division” (i.e. compatible with Py2 behaviour):
# Python 2 only:
# with any types
# Python 2 and 3:
from past.utils import old_div
a = old_div(b, c)
# always same as / on Py2
短整数在 Python 3 中已经去除了,并且 long 已经变成了 int(没有 L 在
repr 后面)
# Python 2 only
k = 4775808L
# Python 2 and 3:
k = 4775808
# Python 2 only
bigint = 1L
# Python 2 and 3
from future.builtins import int
bigint = int(1)
为了测试一个值是否是整数(任何类型):
# Python 2 only:
if isinstance(x, (int, long)):
# Python 3 only:
if isinstance(x, int):
# Python 2 and 3: option 1
from future.builtins import int
# subclass of long on Py2
if isinstance(x, int):
# matches both int and long on Py2
# Python 2 and 3: option 2
from past.builtins import long
if isinstance(x, (int, long)):
八进制常量
# Python 2 only
# Python 2 and 3
Backtick repr
# Python 2 only
# Python 2 and 3
class BaseForm(object):
class FormType(type):
# Python 2 only:
class Form(BaseForm):
__metaclass__ = FormType
# Python 3 only:
class Form(BaseForm, metaclass=FormType):
# Python 2 and 3:
from six import with_metaclass
from future.utils import with_metaclass
class Form(with_metaclass(FormType, BaseForm)):
Strings 和 bytes
Unicode(text) 字符字面量
如果你更新一个已经存在的 Python 2 的代码库,为所有的字符字面量使用 u 做前缀作为 unicode 的标记可能会更好。
# Python 2 only
s1 = 'The Zen of Python'
s2 = u'きたないのよりきれいな方がいい\n'
# Python 2 and 3
s1 = u'The Zen of Python'
s2 = u'きたないのよりきれいな方がいい\n'
futurize 和 python-modernize 工具没有提供一个选项自动完成这个。
如果你为了个项目编写新的代码库,你可以用一个 unicode 字符模块标记所有的字符字面量。
# Python 2 and 3
from __future__ import unicode_literals
# at top of module
s1 = 'The Zen of Python'
s2 = 'きたないのよりきれいな方がいい\n'
查看 http://python-future.org/unicode_literals.html 这里获取更多的关于讨论使用哪种风格的讨论。
字节-字符 字面量
# Python 2 only
s = 'This must be a byte-string'
# Python 2 and 3
s = b'This must be a byte-string'
To loop over a byte-string with possible high-bit characters, obtaining each character as a byte-string of length 1:
# Python 2 only:
for bytechar in 'byte-string with high-bit chars like \xf9':
# Python 3 only:
for myint in b'byte-string with high-bit chars like \xf9':
bytechar = bytes([myint])
# Python 2 and 3:
from future.builtins import bytes
for myint in bytes(b'byte-string with high-bit chars like \xf9'):
bytechar = bytes([myint])
chr() 和 .encode('latin-1') 其中的任何一个都可以用于把一个 int 转换成一个 1-char byte string
# Python 3 only:
for myint in b'byte-string with high-bit chars like \xf9':
char = chr(myint)
# returns a unicode string
bytechar = char.encode('latin-1')
# Python 2 and 3:
from future.builtins import bytes, chr
for myint in bytes(b'byte-string with high-bit chars like \xf9'):
char = chr(myint)
# returns a unicode string
bytechar = char.encode('latin-1')
# forces returning a byte str
basestring
# Python 2 only:
a = u'abc'
assert (isinstance(a, basestring) and isinstance(b, basestring))
# Python 2 and 3: alternative 1
from past.builtins import basestring
# pip install future
a = u'abc'
b = b'def'
assert (isinstance(a, basestring) and isinstance(b, basestring))
# Python 2 and 3: alternative 2: refactor the code to avoid considering
# byte-strings as strings.
from future.builtins import str
a = u'abc'
b = b'def'
c = b.decode()
assert isinstance(a, str) and isinstance(c, str)
# Python 2 only:
templates = [u&blog/blog_post_detail_%s.html& % unicode(slug)]
# Python 2 and 3: alternative 1
from future.builtins import str
templates = [u&blog/blog_post_detail_%s.html& % str(slug)]
# Python 2 and 3: alternative 2
from future.builtins import str as text
templates = [u&blog/blog_post_detail_%s.html& % text(slug)]
# Python 2 only:
from StringIO import StringIO
from cStringIO import StringIO
# Python 2 and 3:
from io import BytesIO
# for handling byte strings
from io import StringIO
# for handling unicode strings
Imports relative to a package
假设包的结构是这样的:
mypackage/
__init__.py
submodule1.py
submodule2.py
submodule1.py 的代码如下:
# Python 2 only:
import submodule2
# Python 2 and 3:
from . import submodule2
# Python 2 and 3:
# To make Py2 code safer (more like Py3) by preventing
# implicit relative imports, you can also add this to the top:
from __future__ import absolute_import
heights = {'Fred': 175, 'Anne': 166, 'Joe': 192}
Iterating through dict keys/values/items
迭代字典的键:
# Python 2 only:
for key in heights.iterkeys():
# Python 2 and 3:
for key in heights:
迭代字典的值:
# Python 2 only:
for value in heights.itervalues():
# Idiomatic Python 3
for value in heights.values():
# extra memory overhead on Py2
# Python 2 and 3: option 1
from future.builtins import dict
heights = dict(Fred=175, Anne=166, Joe=192)
for key in heights.values():
# efficient on Py2 and Py3
# Python 2 and 3: option 2
from future.builtins import itervalues
from six import itervalues
for key in itervalues(heights):
迭代字典元素:
# Python 2 only:
for (key, value) in heights.iteritems():
# Python 2 and 3: option 1
for (key, value) in heights.items():
# inefficient on Py2
# Python 2 and 3: option 2
from future.builtins import iteritems
from six import iteritems
for (key, value) in iteritems(heights):
字典的键/值/元素 作为一个列表
字典的键作为一个列表:
# Python 2 only:
keylist = heights.keys()
assert isinstance(keylist, list)
# Python 2 and 3:
keylist = list(heights)
assert isinstance(keylist, list)
字典的值作为一个列表:
# Python 2 only:
heights = {'Fred': 175, 'Anne': 166, 'Joe': 192}
valuelist = heights.values()
assert isinstance(valuelist, list)
# Python 2 and 3: option 1
valuelist = list(heights.values())
# inefficient on Py2
# Python 2 and 3: option 2
from future.builtins import dict
heights = dict(Fred=175, Anne=166, Joe=192)
valuelist = list(heights.values())
# Python 2 and 3: option 3
from future.utils import listvalues
valuelist = listvalues(heights)
# Python 2 and 3: option 4
from future.utils import itervalues
from six import itervalues
valuelist = list(itervalues(heights))
字典元素作为一个列表:
# Python 2 and 3: option 1
itemlist = list(heights.items())
# inefficient on Py2
# Python 2 and 3: option 2
from future.utils import listitems
itemlist = listitems(heights)
# Python 2 and 3: option 3
from future.utils import iteritems
from six import iteritems
itemlist = list(iteritems(heights))
自定义类的行为
自定义迭代器:
# Python 2 only
class Upper(object):
def __init__(self, iterable):
self._iter = iter(iterable)
def next(self):
# Py2-style
return self._iter.next().upper()
def __iter__(self):
return self
itr = Upper('hello')
assert itr.next() == 'H'
# Py2-style
assert list(itr) == list('ELLO')
# Python 2 and 3: option 1
from future.builtins import object
class Upper(object):
def __init__(self, iterable):
self._iter = iter(iterable)
def __next__(self):
# Py3-style iterator interface
return next(self._iter).upper()
# builtin next() function calls
def __iter__(self):
return self
itr = Upper('hello')
assert next(itr) == 'H'
# compatible style
assert list(itr) == list('ELLO')
# Python 2 and 3: option 2
from future.utils import implements_iterator
@implements_iterator
class Upper(object):
def __init__(self, iterable):
self._iter = iter(iterable)
def __next__(self):
# Py3-style iterator interface
return next(self._iter).upper()
# builtin next() function calls
def __iter__(self):
return self
itr = Upper('hello')
assert next(itr) == 'H'
assert list(itr) == list('ELLO')
自定义 __str__ 方法
# Python 2 only:
class MyClass(object):
def __unicode__(self):
return 'Unicode string: \u5b54\u5b50'
def __str__(self):
return unicode(self).encode('utf-8')
a = MyClass()
# prints encoded string
# Python 2 and 3:
from future.utils import python_2_unicode_compatible
@python_2_unicode_compatible
class MyClass(object):
def __str__(self):
return u'Unicode string: \u5b54\u5b50'
a = MyClass()
# prints string encoded as utf-8 on Py2
Unicode string: 孔子
自定义 __nonzero__ 对比 __bool__ 方法:
# Python 2 only:
class AllOrNothing(object):
def __init__(self, l):
self.l = l
def __nonzero__(self):
return all(self.l)
container = AllOrNothing([0, 100, 200])
assert not bool(container)
# Python 2 and 3:
from future.builtins import object
class AllOrNothing(object):
def __init__(self, l):
self.l = l
def __bool__(self):
return all(self.l)
container = AllOrNothing([0, 100, 200])
assert not bool(container)
列表对迭代器
# Python 2 only:
for i in xrange(10**8):
# Python 2 and 3: forward-compatible
from future.builtins import range
for i in range(10**8):
# Python 2 and 3: backward-compatible
from past.builtins import xrange
for i in xrange(10**8):
# Python 2 only
mylist = range(5)
assert mylist == [0, 1, 2, 3, 4]
# Python 2 and 3: forward-compatible: option 1
mylist = list(range(5))
# copies memory on Py2
assert mylist == [0, 1, 2, 3, 4]
# Python 2 and 3: forward-compatible: option 2
from future.builtins import range
mylist = list(range(5))
assert mylist == [0, 1, 2, 3, 4]
# Python 2 and 3: option 3
from future.utils import lrange
mylist = lrange(5)
assert mylist == [0, 1, 2, 3, 4]
# Python 2 and 3: backward compatible
from past.builtins import range
mylist = range(5)
assert mylist == [0, 1, 2, 3, 4]
# Python 2 only:
mynewlist = map(f, myoldlist)
assert mynewlist == [f(x) for x in myoldlist]
# Python 2 and 3: option 1
# Idiomatic Py3, but inefficient on Py2
mynewlist = list(map(f, myoldlist))
assert mynewlist == [f(x) for x in myoldlist]
# Python 2 and 3: option 2
from future.builtins import map
mynewlist = list(map(f, myoldlist))
assert mynewlist == [f(x) for x in myoldlist]
# Python 2 and 3: option 3
import itertools.imap as map
except ImportError:
mynewlist = list(map(f, myoldlist))
# inefficient on Py2
assert mynewlist == [f(x) for x in myoldlist]
# Python 2 and 3: option 4
from future.utils import lmap
mynewlist = lmap(f, myoldlist)
assert mynewlist == [f(x) for x in myoldlist]
# Python 2 and 3: option 5
from past.builtins import map
mynewlist = map(f, myoldlist)
assert mynewlist == [f(x) for x in myoldlist]
# Python 2 only:
from itertools import imap
myiter = imap(func, myoldlist)
assert isinstance(myiter, iter)
# Python 3 only:
myiter = map(func, myoldlist)
assert isinstance(myiter, iter)
# Python 2 and 3: option 1
from future.builtins import map
myiter = map(func, myoldlist)
assert isinstance(myiter, iter)
# Python 2 and 3: option 2
import itertools.imap as map
except ImportError:
myiter = map(func, myoldlist)
assert isinstance(myiter, iter)
As above with zip and itertools.izip.
filter, ifilter
As above with filter and itertools.ifilter too
其他内建函数
File IO with open():
# Python 2 only
f = open('myfile.txt')
data = f.read()
# as a byte string
text = data.decode('utf-8')
# Python 2 and 3: alternative 1
from io import open
f = open('myfile.txt', 'rb')
data = f.read()
# as bytes
text = data.decode('utf-8')
# unicode, not bytes
# Python 2 and 3: alternative 2
from io import open
f = open('myfile.txt', encoding='utf-8')
text = f.read()
# unicode, not bytes
# Python 2 only:
assert reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) == 1+2+3+4+5
# Python 2 and 3:
from functools import reduce
assert reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) == 1+2+3+4+5
raw_input()
# Python 2 only:
name = raw_input('What is your name? ')
assert isinstance(name, str)
# native str
# Python 2 and 3:
from future.builtins import input
name = input('What is your name? ')
assert isinstance(name, str)
# native str on Py2 and Py3
# Python 2 only:
input(&Type something safe please: &)
# Python 2 and 3
from future.builtins import input
eval(input(&Type something safe please: &))
警告:使用上面任何一个都是不安全的
# Python 2 only:
f = file(pathname)
# Python 2 and 3:
f = open(pathname)
# But preferably, use this:
from io import open
f = open(pathname, 'rb')
# if f.read() should return bytes
f = open(pathname, 'rt')
# if f.read() should return unicode text
execfile()
# Python 2 only:
execfile('myfile.py')
# Python 2 and 3: alternative 1
from past.builtins import execfile
execfile('myfile.py')
# Python 2 and 3: alternative 2
exec(compile(open('myfile.py').read()))
# This can sometimes cause this:
SyntaxError: function ... uses import * and bare exec ...
# See /PythonCharmers/python-future/issues/37
# Python 2 only:
assert unichr(8364) == 'EUR'
# Python 3 only:
assert chr(8364) == 'EUR'
# Python 2 and 3:
from future.builtins import chr
assert chr(8364) == 'EUR'
# Python 2 only:
intern('mystring')
# Python 3 only:
from sys import intern
intern('mystring')
# Python 2 and 3: alternative 1
from past.builtins import intern
intern('mystring')
# Python 2 and 3: alternative 2
from sys import intern
except ImportError:
intern('mystring')
args = ('a', 'b')
kwargs = {'kwarg1': True}
# Python 2 only:
apply(f, args, kwargs)
# Python 2 and 3: alternative 1
f(*args, **kwargs)
# Python 2 and 3: alternative 2
from past.builtins import apply
apply(f, args, kwargs)
# Python 2 only:
assert chr(64) == b'@'
assert chr(200) == b'\xc8'
# Python 3 only: option 1
assert chr(64).encode('latin-1') == b'@'
assert chr(0xc8).encode('latin-1') == b'\xc8'
# Python 2 and 3: option 1
from future.builtins import chr
assert chr(64).encode('latin-1') == b'@'
assert chr(0xc8).encode('latin-1') == b'\xc8'
# Python 3 only: option 2
assert bytes([64]) == b'@'
assert bytes([0xc8]) == b'\xc8'
# Python 2 and 3: option 2
from future.builtins import bytes
assert bytes([64]) == b'@'
assert bytes([0xc8]) == b'\xc8'
# Python 2 only:
assert cmp('a', 'b') & 0 and cmp('b', 'a') & 0 and cmp('c', 'c') == 0
# Python 2 and 3: alternative 1
from past.builtins import cmp
assert cmp('a', 'b') & 0 and cmp('b', 'a') & 0 and cmp('c', 'c') == 0
# Python 2 and 3: alternative 2
cmp = lambda(x, y): (x & y) - (x & y)
assert cmp('a', 'b') & 0 and cmp('b', 'a') & 0 and cmp('c', 'c') == 0
# Python 2 only:
reload(mymodule)
# Python 2 and 3
from imp import reload
reload(mymodule)
StringIO 模块
# Python 2 only
from StringIO import StringIO
from cStringIO import StringIO
# Python 2 and 3
from io import BytesIO
# and refactor StringIO() calls to BytesIO() if passing byte-strings
# Python 2 only:
import httplib
import Cookie
import cookielib
import BaseHTTPServer
import SimpleHTTPServer
import CGIHttpServer
# Python 2 and 3:
from future.standard_library import hooks
with hooks():
import http.client
import http.cookies
import http.cookiejar
import http.server
urllib 模块
这个使用 urllib 的示例,相同的模式也适用于其他的已经移除的模块(一个完整的列表 http://python-future.org/standard_library_imports.html#list-of-standard-library-modules )
# Python 2 only:
from urlparse import urlparse
from urllib import urlencode
# Python 3 only:
from urllib.parse import urlparse, urlencode
# Python 2 and 3: alternative 1
from future.standard_library import hooks
with hooks():
from urllib.parse import urlparse, urlencode
# Python 2 and 3: alternative 2
from future.moves.urllib.parse import urlparse, urlencode
from six.moves.urllib.parse import urlparse, urlencode
# Python 2 and 3: alternative 3
from urllib.parse import urlparse, urlencode
except ImportError:
from urlparse import urlparse
from urllib import urlencode
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:32420次
积分:1166
积分:1166
排名:千里之外
原创:89篇
(2)(1)(86)PY-2-F-010-S01M
您当前的位置: &
& PY-2-F-010-S01M
点击图片查看大图
PY-2-F-010-S01M&
PY-2-F-010-S01M&
PY-2-F-010-S01M&
意大利GEFRAN&
1.00元/只&
最小起订量:
供货总量:
发货期限:
自买家付款之日起 3 天内发货
发布时间:
16:06:05&&有效期至:长期有效
更新时间:
&深圳现货PY-2-F-010-S01M&& & &深圳现货PY-2-F-010-S01M &&& & & 深圳现货PY-2-F-010-S01M
详情请致电我公司或上我公司网站查询
传感器事业部:8,
& & & & 传真:1
& & & 工作QQ:
LT系列:LT-M-050-P,LT-M-0100-P,LT-M-0130-P,LT-M-0150-P,
LT-M-0175-P,LT-M-0200-P,LT-M-0225-P,LT-M-0250-P,LT-M-0275-P,
LT-M-300-P,LT-M-0375-P,LT-M-0400-P,LT-M-0450-P,LT-M-0500-P,
LT-M-0600-P,LT-M-0750-P,LT-M-0900-P,LT-M-050-S,LT-M-0100-S,
LT-M-0130-S,LT-M-0150-S,LT-M-0175-S,LT-M-0200-S,LT-M-0225-S,
LT-M-0275-S,LT-M-300-S,LT-M-0375-S,LT-M-0400-S,LT-M-0450-S,
LT-M-0500-S,LT-M-0600-S,LT-M-0750-S,LT-M-0900-S,LTC-M-050-S,
LTC-M-0100-S,LTC-M-0130-S,LTC-M-0150-S,LTC-M-0175-S,LTC-M-0200-S,
LTC-M-0225-S,LTC-M-0250-S,LTC-M-0275-S,LTC-M-300-S,LTC-M-0375-S,
LTC-M-0400-S,LTC-M-0450-S,LTC-M-0500-S,LTC-M-0600-S,LTC-M-0750-S,LTC-M-0900-S
& & PK系列:PK-M-0100-L,PK-M-0130-L,PK-M-0150-L,PK-M-0200-L,PK-M-0225-L,
PK-M-0300-L,PK-M-0400-L,PK-M-0450-L,PK-M-0500-L,PK-M-0600-L,PK-M-0750-L,
PK-M-0900-L,PK-M-01000-L,PK-M-01250-L,PK-M-01500-L,PK-M-01750-L,PK-M-02000-L
PY2系列:PY-2-F-010-S01M,PY-2-F-025-S01M,PY-2-F-050-S01M,PY-2-F-075-S01M,
303 & &PY-2-F-050-SOLM,PY2-F-025-S-S01M
GEFRAN熔体压力传感器是在高温环境下使用的压力/温度变送器和传感器,可以再538℃的高温下测量熔体压力基于两个主要的建设性原则,内部采用流体(形变)和非流体(压阻),GEFRAN熔体压力传
感器有四种不同的型号:刚性杆、柔性连接、带热电偶的柔性连接和尖端外露。
GEFRAN熔体压力传感器可以测量所有范围的压力:最小0-17bar,最大0-2500bar
mV/V输出信号,4-20mA,0-10V,规格类型,CANOpen和Atex或工厂共有版本,可以适用于塑料机械所有结构和应用的完整解决方案包
CE认证以及很强的抗噪声能力;对工业现场电磁扰动的良好适应性和高达538℃的工作温度,是GEFRAN熔体压力传感器的两大主要技术性能。
GEFRAN高温熔体压力计主要有M30、M31、M32、M33、W30、W31、W32、W33、ME0/MN0、ME1/MN1、ME2/MN2、ME3/MN3、WE0/WN1、WE1/WN1、WE2/WN2、WE3/WN3、M50、M51、M52、M60、M61、M62各种系列。
具体型号:
M31-6-M-B35D-1-4-D &M31-6-M-B35D-1-4-D &M32-6-M-B35D-1-4-E &M32-6-M-B35D-1-4-D &ME0-6-M-B05C-1-4-0 &ME0-6-M-B05C-1-4-0 &M31-6-M-B35D-1-4-D &M31-6-M-B01M-1-4-D &
MN1-6-M-B35D-1-4-D &MA31-L-B07C & MN2-6-M-B35D-1-4-D &MN1-6-M-B35D-4-7-E
& & GEFRAN压力传感器有TP/TPA系列、TPF/TPFA系列、TPH/TPHA系列、TK系列、XSA系列、XPSA系列、TPS系列、TDP系列、TKDA系列。
& & GEFRAN称重传感器有CB、TC、TR、SH、CT、CM、CU、AM、TU、TH、SB、OC、OD等多种系列。
& & GEFRAN控制仪表有温控器400/401系列400-R-R-R-0,401-R-R-H-1,600系列600-R-R-E-1,、、2500、40TB、4T48、4T96、40B48、40B96、600、等多种系列。
国内常用型号有:
TK-E-1-M-B06D-H-V,TK-E-1-F-M02D-M-V,PCM-275, PZ34-A-100,M31-6-M-B35D-1-4-D M31-6-M-B35D-1-4-D M32-6-M-B35D-1-4-E M32-6-M-B35D-1-4-D,ME0-6-M-B05C-1-4-0,PR65B-0-103
M30 M31 M32系列高温压力计
1、 压力范围:0~35/0~2000bar或0~500/0~30000psi
2、 精确度&0.25%
3、 水银填充量为30~40立方公分
4、 标准模片具有GTP护膜之15-5PH不锈钢材质
5、 GTP先进护膜可抗腐蚀、刮伤及高温
6、 具有自动归零功能
7、 使用M18X1.5标准螺纹
8、 保护等级为IP65
1、 分辨率为无限
2、 最大超压可达2倍的全刻度
3、 全刻度输出讯号2.5/3.3mV/V&C
4、 电源供应6~12Vdc
5、 绝缘阻抗&1000M&O
6、 零点平衡为5%全刻度
7、 校准讯号为80%全刻度
8、 补偿温度范围为-30~+120&C
9、 补偿范围的热偏移&0.02%FSO/&C
10、 膜片最大温度为400&C/750&F
11、 感温线使用J-TYPE
M50 M51 M52系列高温压力计
1、 经济优惠的价格
2、 具有1.5倍的超负荷能力
3、 有显示表易于读取读数
4、 使用M18X1.5螺牙及1/2-20UNF连结
5、 标准模片为15-5PH不锈钢材质
6、 不需要外接电源
7、 保护等级为IP65
1、 精确度为&1%全刻度
2、 测量压力范围0~350bar或0~700bar
3、 最大外壳温度85&C
4、 最大薄膜温度为400&C
5、 补偿温度范围为0~85&C
6、 补偿范围的热偏移&0.03bar/&C
7、 膜片最大温度为400&C/750&F
8、 感温线使用J-TYPE
M60 M61 M62系列高温压力计
1、 经济优惠的价格
2、 具有2倍的超负荷能力
3、 有5位数显示表易于读取读数
4、 使用M18X1.5螺牙及1/2-20UNF连结
5、 标准模片为15-5PH不锈钢材质
6、 有一组警报功能
7、 具备标准再传送功能
8、 液体填充介质可降低热耗损
1、 精确度为&0.5%全刻度
2、 测量压力范围0~35bar或0~1000bar
3、 供应电源115/230Vac
4、 压力讯号再传送4~20mA
5、 最大外壳温度55&C
6、 最大薄膜温度为400&C
7、 补偿温度范围为0~85&C
8、 补偿范围的热偏移2.0~4.0bar/&C
9、 膜片最大温度为400&C/750&F
10、 感温线使用J-TYPE
11、 警报使用C型5A继电器
ME0 ME1 ME2 系列高温压力计
1、 压力范围:0~35/0~2000bar或0~500/0~30000psi
2、 精确度&0.25%
3、 水银填充量为30~40立方公分
4、 标准模片具有GTP护膜之15-5PH不锈钢材质
5、 GTP先进护膜可抗腐蚀、刮伤及高温
6、 具有自动归零功能
7、 使用M18X1.5标准螺纹
8、 保护等级为IP65
1、 分辨率为无限
2、 最大超压可达2倍的全刻度
3、 电源供应10~30Vdc
4、 最大电流吸收为32mA
5、 绝缘阻抗&1000M&O
6、 全刻度输出讯号为20mA
7、 零点平衡为4mA
8、 反应时间为&1ms
9、 校准讯号为80%全刻度
10、 有输出短路及反相保护功能
11、 补偿温度范围为0~85&C
12、 补偿范围的热偏移&0.02%FSO/&C
13、 膜片最大温度为400&C/750&F
14、 感温线使用J-TYPE本产品网址:/b2b/jisc001/sell/itemid-.html}

我要回帖

更多关于 py语法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信