পাইথন 'টাইপ' অবজেক্টটিকে স্ট্রিংয়ে রূপান্তর করুন


152

আমি ভাবছি কীভাবে অজগরটির প্রতিফলনযোগ্য ক্ষমতা ব্যবহার করে অজগর 'টাইপ' বস্তুকে স্ট্রিংয়ে রূপান্তর করা যায়।

উদাহরণস্বরূপ, আমি কোনও অবজেক্টের ধরণটি মুদ্রণ করতে চাই

print "My type is " + type(someObject) # (which obviously doesn't work like this)

1
আপনি কোন বস্তুর "প্রকার "টিকে কী বলে বিবেচনা করেন? এবং আপনি যা পোস্ট করেছেন তাতে কী কাজ করে না?
ফালমারী

দুঃক্ষিত, মুদ্রণ প্রকার (someObject) প্রকৃতপক্ষে কাজ করে :)
Rehno Lindeque

উত্তর:


223
print type(someObject).__name__

যদি এটি আপনার উপযুক্ত না হয় তবে এটি ব্যবহার করুন:

print some_instance.__class__.__name__

উদাহরণ:

class A:
    pass
print type(A())
# prints <type 'instance'>
print A().__class__.__name__
# prints A

এছাড়াও, মনে হয় type()পুরানো-স্টাইল বনাম নতুন-স্টাইলের ক্লাসগুলি ব্যবহার করার সাথে এর মধ্যে পার্থক্য রয়েছে (এটি হ'ল উত্তরাধিকার object)। নতুন স্টাইলের ক্লাসের জন্য, type(someObject).__name__নামটি দেয় এবং পুরানো-শৈলীর শ্রেণীর জন্য এটি ফিরে আসে instance


3
করা print(type(someObject))পুরো নামটি (যেমন প্যাকেজ সহ) মুদ্রণ করবে
ম্যাজওয়াইন্ড

7
>>> class A(object): pass

>>> e = A()
>>> e
<__main__.A object at 0xb6d464ec>
>>> print type(e)
<class '__main__.A'>
>>> print type(e).__name__
A
>>> 

আপনি একটি স্ট্রিং মধ্যে রূপান্তর মানে কি? আপনি আপনার নিজস্ব repr এবং str _ পদ্ধতি নির্ধারণ করতে পারেন :

>>> class A(object):
    def __repr__(self):
        return 'hei, i am A or B or whatever'

>>> e = A()
>>> e
hei, i am A or B or whatever
>>> str(e)
hei, i am A or B or whatever

বা আমি জানি না ... দয়া করে ব্যাখ্যা যুক্ত করুন;)


BTW। আমি মনে করি আপনার আসল উত্তরে str (টাইপ (কোনও অবজেক্ট) ছিল যা এটি
সহায়কও

4
print("My type is %s" % type(someObject)) # the type in python

বা ...

print("My type is %s" % type(someObject).__name__) # the object's type (the class you defined)


1

আপনি যদি ব্যবহার করতে চান str()এবং একটি কাস্টম str পদ্ধতি ব্যবহার করতে চান । এটি repr এর জন্যও কাজ করে।

class TypeProxy:
    def __init__(self, _type):
        self._type = _type

    def __call__(self, *args, **kwargs):
        return self._type(*args, **kwargs)

    def __str__(self):
        return self._type.__name__

    def __repr__(self):
        return "TypeProxy(%s)" % (repr(self._type),)

>>> str(TypeProxy(str))
'str'
>>> str(TypeProxy(type("")))
'str'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.