欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Python基础学习代码之执行环境

程序员文章站 2022-05-30 16:19:15
...
class C(object):
    def __call__(self, *args, **kwargs):
        print "I'm callable! called with args:\n",args
c = C()
c('a',1)
single_code = compile("print 'hello,world!'",'','single')
exec(single_code)
eval_code = compile('100*3','','eval')
print eval(eval_code)

#exec_code = compile("""req = input('input:')
#for eachnum in range(req):
#    print eachnum""",'','exec')
#exec(exec_code)
exec """x = 0
print 'x is currently:',x
while x < 5:
    x+=1
    print 'incrementing x to:',x
    """
#f = open('c14.py')
#exec f
#print f.tell()
#print f.close()
#from os.path import getsize
#getsize('c14.py')
#f.seek(0)
#exec f

#loopmake
dashes = '\n' + '-' * 50
exec_dict = {
    'f':"""
    for %s in %s:
        print %s
        """,
    's':"""
    %s = 0
    %s = %s
    while %s < len(%s):
        print %s[%s]
        %s = %s + 1
        """,
    'n':"""
    %s = %d
    while %s < %d:
        print %s
        %s = %s + %d
        """
        }
def main():
    ltype = raw_input('Loop type?[for/while]')
    dtype = raw_input('Data type?[number/seq]')
    if dtype == 'n':
        start = input('start value?:')
        stop = input('ending value?:')
        step = input('steping value?:')
        seq = str(range(start,stop,step))

def foo():
    return True
def bar():
    'bar() does not much'
    return True
foo.__doc__ = 'foo() does not much'
foo.tester = """
if foo():
    print 'passed'
else:
    print 'failed'
"""
for eachattr in dir():
    obj = eval(eachattr)
    if isinstance(obj,type(foo)):
        if hasattr(obj,'__doc__'):
            print '\nfunction "%s" has a doc string:\n\t%s' % (eachattr,obj.__doc__)
        if hasattr(obj,'tester'):
            print '\nfunction "%s" has tester' % eachattr
            exec(obj.tester)
        else:
            print '%s function has no tester' % eachattr
    else:
        print '%s is not a function' % eachattr

import os
#print os.system('ping www.qq.com')

f = os.popen('dir')
data = f.readlines()
f.close()
print data

## 替换os.system
from subprocess import call
res = call(('dir'),shell=True)

## 替换os.popen
from subprocess import PIPE,Popen
f = Popen(('wmic','diskdrive'),stdout=PIPE).stdout
data = f.readlines()
f.close()
print data

import sys
def usage():
    print 'At least 2 arguments'
    print 'usage: args.py arg1 arg2 [arg3....]'
    sys.exit(1)
argc = len(sys.argv)
#if argc < 3:
#    usage()

prev_exit_func = getattr(sys,'exitfunc',None)
def my_exit_func(old_exit=prev_exit_func):
    if old_exit is not None and callable(old_exit):
        old_exit()
        sys.exitfunc = my_exit_func

def my_exit():
    print 'exit python'
sys.exitfunc = my_exit
print 'hello,begin exit.'
sys.exit(1)

以上就是Python基础学习代码之执行环境的内容,更多相关内容请关注PHP中文网(www.php.cn)!