Discuss / Python / 获取操作对象的信息、内容

获取操作对象的信息、内容

Topic source

久疤_796

#1 Created at ... [Delete] [Delete and Lock User]
#!usr/bin/env python3
# -*- coding: utf-8 -*-

'获取对象信息'

print('type\n')
num = 1234
print(num.__class__.__name__,type(num))

def fun():
    pass
print(fun.__class__.__name__,type(fun))

import types
print(type(fun)==types.FunctionType)
print(type(fun)==types.BuiltinFunctionType)
print(type(abs)==types.BuiltinFunctionType)
print(type(x for x in range(10))==types.GeneratorType)
print(type((x for x in range(10)))==types.GeneratorType)


print('\nisinstance\n')
import 继承和多态 as Inherit
bio = Inherit.Biology('Biology A')
ani = Inherit.Animal('Animal A')
pla = Inherit.Plant('Plant A')
cat = Inherit.Cat('Miao')
dog = Inherit.Dog('Wang')
apl = Inherit.Fruit('Apple')
act = Inherit.action

print(isinstance(ani,bio.__class__))
print(isinstance(pla,bio.__class__))
print(isinstance(cat,bio.__class__))
print(isinstance(cat,ani.__class__))
print(isinstance(cat,dog.__class__))

print(isinstance(num,int))
print(isinstance('123',str))
print(isinstance('123',(str,int)))
#print(isinstance(num,[str,int]))

print('\ndir()\n')
print(dir(str),dir(str)==dir('123'),
      '12453'.__len__(),range(100).__len__())


print('\n获取操作对象的状态\n')
class myNum(object):
    def __init__(self,num):
        self.__num = num
    def setNum(self,num):
        self.__num = num
    def getNum(self):
        return self.__num
    def addNum(self,num):
        self.__num = self.__num + num
    def powerNum(self,num=2):
        self.__num = self.__num ** num
num = myNum(10)
print(hasattr(num,'__num'))
print(hasattr(num,'getNum'))
print(hasattr(num,'testNum'))
setattr(num,'testNum',110)
print(hasattr(num,'testNum'))
print(getattr(num,'testNum'))
setattr(num,'testFun',lambda x:x>=0)
print(hasattr(num,'testFun'))
print(getattr(num,'testFun')(100))
print(getattr(num,'testFun')(-123))
#print(getattr(num,'what'))
print(getattr(num,'what',404))

久疤_796

#2 Created at ... [Delete] [Delete and Lock User]

错了,前面应该是:

#!/usr/bin/env python3

  • 1

Reply