පයිතන් වස්තුවක වර්ගය තීරණය කරන්න
සමඟ වස්තුවක වර්ගය තීරණය කරන්න type
>>> obj = object()
>>> type(obj)
<class 'object'>
එය ක්රියාත්මක වුවද, ද්විත්ව අවධාරනය කරන ගුණාංග වළක්වා ගන්න __class__
- ඒවා අර්ථාන්විතව පොදු නොවන අතර, සමහර විට මෙම අවස්ථාවේ දී එසේ නොවුවද, බිල්ඩින් ක්රියාකාරිත්වයන්ට වඩා හොඳ හැසිරීමක් ඇත.
>>> obj.__class__ # avoid this!
<class 'object'>
පරීක්ෂා කිරීම ටයිප් කරන්න
විචල්යයක් යනු ලැයිස්තුවක්, ශබ්ද කෝෂයක් හෝ වෙනත් දෙයක්ද යන්න තීරණය කිරීමට සරල ක්රමයක් තිබේද? මා විසින් වස්තුවක් නැවත ලබා ගන්නේ එය එක්තරා ආකාරයක විය හැකි අතර වෙනස පැවසීමට මට හැකියාව තිබිය යුතුය.
හොඳයි, එය වෙනස් ප්රශ්නයකි, වර්ගය භාවිතා නොකරන්න - භාවිතා කරන්න isinstance
:
def foo(obj):
"""given a string with items separated by spaces,
or a list or tuple,
do something sensible
"""
if isinstance(obj, str):
obj = str.split()
return _foo_handles_only_lists_or_tuples(obj)
උප කාණ්ඩය මඟින් ඔබේ පරිශීලකයා දක්ෂ හෝ සංවේදී යමක් කළ හැකි අවස්ථාව මෙය ආවරණය කරයි str
- ලිස්කොව් ආදේශනයේ මූලධර්මයට අනුව, ඔබේ කේතය කඩ නොකර උප පංති අවස්ථා භාවිතා කිරීමට ඔබට අවශ්යය - සහ isinstance
මේ සඳහා සහාය වේ.
සාරාංශ භාවිතා කරන්න
ඊටත් වඩා හොඳයි, ඔබට නිශ්චිත වියුක්ත මූලික පන්තියක් collections
හෝ සිට numbers
:
from collections import Iterable
from numbers import Number
def bar(obj):
"""does something sensible with an iterable of numbers,
or just one number
"""
if isinstance(obj, Number): # make it a 1-tuple
obj = (obj,)
if not isinstance(obj, Iterable):
raise TypeError('obj must be either a number or iterable of numbers')
return _bar_sensible_with_iterable(obj)
නැතහොත් පැහැදිලිව ටයිප් කරන්න
නැතහොත්, සියල්ලටම වඩා, තාරා-ටයිප් කිරීම භාවිතා කරන්න, ඔබේ කේතය පැහැදිලිව ටයිප් නොකරන්න. තාරා-ටයිප් කිරීම වඩාත් අලංකාරවත් හා අඩු වාචිකතාවයකින් ලිස්කොව් ආදේශනයට සහාය වේ.
def baz(obj):
"""given an obj, a dict (or anything with an .items method)
do something sensible with each key-value pair
"""
for key, value in obj.items():
_baz_something_sensible(key, value)
නිගමනය
type
ඇත්ත වශයෙන්ම නිදර්ශන පන්තියක් ලබා ගැනීමට භාවිතා කරන්න .
isinstance
සත්ය උප පංති හෝ ලියාපදිංචි වියුක්තයන් සඳහා පැහැදිලිව පරීක්ෂා කිරීමට භාවිතා කරන්න .
- තේරුමක් ඇති තැන ටයිප් කිරීම වළක්වා ගන්න.