π ΠΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° python?
Π§ΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ dir()
. ΠΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
object_name = SomeObject()
methods = dir(object_name)
print(methods)
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ SomeObject()
Π½Π° ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
Π’Π°ΠΊΠΆΠ΅, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ dir(object_name)
Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ dir()
Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
methods = dir(SomeObject)
print(methods)
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° SomeObject
Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°.
Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ Π°ΡΡΠΈΠ±ΡΡΡ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ help()
.
object_name = SomeObject()
help(object_name)
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²ΡΠ΅Ρ aspect-Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ Π°ΡΡΠΈΠ±ΡΡΡ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Python?
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π² Python, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π²Π°ΠΌ ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° Python.
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ dir()
ΠΠ΅ΡΠ²ΡΠΌ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ dir()
. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ c Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Python, ΡΠ°ΠΊ ΠΈ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ.
ΠΡΠΈΠΌΠ΅Ρ:
class MyClass:
def method1(self):
pass
def method2(self):
pass
my_object = MyClass()
methods = dir(my_object)
print(methods)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° my_object
, Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° MyClass
.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ vars()
ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± - ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ vars()
, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ»ΡΡΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ:
class MyClass:
def method1(self):
pass
def method2(self):
pass
my_object = MyClass()
methods = vars(my_object).keys()
print(methods)
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΠ½Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° my_object
.
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠΈ
Π’ΡΠ΅ΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ±, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°, - ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ inspect
ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Python. ΠΠΎΠ΄ΡΠ»Ρ inspect
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΆΠΈΠ²ΡΡΠΈΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ
ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Ρ inspect
- ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ getmembers()
. ΠΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°Ρ (ΠΈΠΌΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) Π΄Π»Ρ Π²ΡΠ΅Ρ
Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΡΡΠ΅ΠΌ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ:
import inspect
class MyClass:
def method1(self):
pass
def method2(self):
pass
my_object = MyClass()
methods = [name for name, value in inspect.getmembers(my_object) if inspect.ismethod(value)]
print(methods)
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ getmembers()
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΏΠ°Ρ (ΠΈΠΌΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° my_object
. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΈΠ»ΡΡΡΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» Π²Π°ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ dir()
, ΡΡΠ½ΠΊΡΠΈΡ vars()
ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ inspect
Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ
ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅.