Penggodaman - Kebenaran keselamatan modul Python
伊谢尔伦
伊谢尔伦 2017-06-12 09:25:57
0
1
682

Kini kita perlu membangunkan sistem pemalam. Sesiapa sahaja dalam sistem pemalam boleh menulis fail PY dan memuatkannya. Tetapi anda perlu memperkenalkan perpustakaan program utama, seperti

# test.py
from lib.function import *
...

Bagaimana untuk menghalang pengguna daripada mengakses kaedah atau pembolehubah lain dalam lib?

semua Jika saya menambah nama, program utama saya perlu memanggil semua *, boleh?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

membalas semua(1)
学霸

Pembolehubah atau kaedah yang boleh diimport dalam python并没有真正的私有变量或者方法, 所以基本上是无法阻止别人访问另一个模块的方法或者变量, 但是如果用户是通过from lib.function import *, 那么我们可以通过__all__属性去设置*, contohnya:

cat abc.py
__all__ = ['bar']
waz = 5
bar = 10
def baz(): return 'baz'

cat b2.py
from abc import *
print(dir())

# 输出:
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'bar']

Boleh lihat di b2.py的输出, 并没有barbaz, 所以我们可以通过这种方式, 来做一个简单的控制, 当然下划线开头的私有变量也限制了, 但这种限制对 import abc这种引入方式无效

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan