小编Zer*_*ays的帖子

python中locals()和globals()与dir()之间的区别

假设这段代码:

>>> iterator=filter(lambda x: x % 3 == 0, [2, 18, 9, 22, 17, 24, 8, 12, 27])
>>> x=int()
>>> locals()
{'__package__': None, '__spec__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, 'iterator': <filter object at 0x02E732B0>, 'x': 0, '__doc__': None}
>>> globals()
{'__package__': None, '__spec__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, 'iterator': <filter object at 0x02E732B0>, 'x': 0, '__doc__': None}
>>> dir()
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'iterator', 'x']
>>> 
Run Code Online (Sandbox Code Playgroud)

locals,globals和dir有什么区别?什么是用法?

python

10
推荐指数
2
解决办法
5214
查看次数

python3中的函数类型是什么

在python 3中,每个东西都是objs,函数也是如此.函数是一等公民,这意味着我们可以像其他变量一样做.

>>> class x:
    pass

>>> 
>>> isinstance(x,type)
True
>>> type(x)
<class 'type'>
>>> 
>>> x=12
>>> isinstance(x,int)
True
>>> type(x)
<class 'int'>
>>> 
Run Code Online (Sandbox Code Playgroud)

但功能不同!:

>>> def x():
    pass

>>> type(x)
<class 'function'>
>>> isinstance(x,function)
Traceback (most recent call last):
  File "<pyshell#56>", line 1, in <module>
    isinstance(x,function)
NameError: name 'function' is not defined
>>>
Run Code Online (Sandbox Code Playgroud)

为什么错误?什么是python函数类型?

python python-3.x

10
推荐指数
2
解决办法
1199
查看次数

TypeError:type()需要1或3个参数

我有一个TypeClass来制作类:

class MyMetaClass(type):

    def __new__(cls, *args, **kwargs):
        print('call __new__ from MyMetaClass.')
        return type(cls.__name__, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

但是在使用时:

Foo= MyMetaClass('Foo', (), {'name':'pd'})
Run Code Online (Sandbox Code Playgroud)

提出错误:

TypeError: type() takes 1 or 3 arguments
Run Code Online (Sandbox Code Playgroud)

如果改变它:

class MyMetaClass(type):
    def __new__(cls, *args, **kwargs):
        print('call __new__ from MyMetaClass.')
        return type(cls.__name__, (), {})
Run Code Online (Sandbox Code Playgroud)

它会起作用!哪里有问题?

python

5
推荐指数
1
解决办法
3367
查看次数

('未找到Nmap',<class'nmap.nmap.PortScannerError'>)

问题出在哪儿?

import nmap
Run Code Online (Sandbox Code Playgroud)

我安装了nmap和python,当我使用时import nmap没有任何问题.但使用时:

nmap.PortScanner()
Run Code Online (Sandbox Code Playgroud)

抛出此错误:

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    nmap.PortScanner()
  File "./nmap/nmap.py", line 153, in __init__
    raise PortScannerError('nmap program was not found in path. PATH is:{0}'.format(os.getenv('PATH')))
nmap.nmap.PortScannerError: 'nmap program was not found in path. PATH is : /usr/lib    /lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:    /usr/local/games'"
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
2
解决办法
2万
查看次数

字符串比较'1111'<'99'为True

如果你像这样比较两个字符串有什么问题:

>>> "1111">'19'
False
>>> "1111"<'19'
True
Run Code Online (Sandbox Code Playgroud)

为什么'1111'小于'19'?

python

2
推荐指数
1
解决办法
83
查看次数

打印SuperClass中的所有SubClass和SubClass中的所有SuperClass

我想在SuperClass中打印所有子类,并在子类中打印所有SuperClasses:

class SuperClass():
    def Print(self):
        print('my sub classes are : ')
        #print all childs

class Sub1(SuperClass,...):
    def Print(self):
        print('My parents are :')
        #print all SuperClasses

class Sub2(SuperClass,...):
    def Print(self):
        print('My parents are :')
        #print all SuperClasses
Run Code Online (Sandbox Code Playgroud)

SuperClass有Print打印所有继承的类,Sub有Print打印方法打印所有的SuperClasses.怎么办?

python

0
推荐指数
1
解决办法
497
查看次数

标签 统计

python ×6

python-3.x ×1