沈阳影讯,奇妙的n次相遇,武汉公交查询网
class foo(): pass class boo(foo): pass class aoo(boo): pass print(issubclass(boo,foo)) #true print(issubclass(aoo,foo)) #true
class foo(object): pass obj = foo() print(obj,type(obj)) #<__main__.foo object at 0x000001b58f579d68> <class '__main__.foo'> if type(obj) == foo: print('obj是foo类型') #obj是foo类型
class foo(object): pass class bar(object): pass def func(*args): foo_counter =0 bar_counter =0 for item in args: if type(item) == foo: foo_counter += 1 elif type(item) == bar: bar_counter += 1 return foo_counter,bar_counter result = func(foo(),bar(),foo()) print(result) #(2, 1) v1,v2 = func(foo(),bar(),foo()) print(v1,v2) #2 1
class base(object): pass class foo(base): pass obj1 = foo() print(isinstance(obj1,foo)) # 检查第一个参数(对象)是否是第二个参数(类及父类)的实例。 print(isinstance(obj1,base)) # 检查第一个参数(对象)是否是第二个参数(类及父类)的实例。 obj2 = base() print(isinstance(obj2,foo)) # 检查第一个参数(对象)是否是第二个参数(类及父类)的实例。 print(isinstance(obj2,base)) # 检查第一个参数(对象)是否是第二个参数(类及父类)的实例。
from types import methodtype,functiontype class foo: def display(self): pass def check(arg): """ 检查arg是方法还是函数? :param arg: :return: """ if isinstance(arg,methodtype): print('arg是一个方法') elif isinstance(arg,functiontype): print('arg是一个函数') else: print('不知道是什么') check(check) #arg是一个函数 obj = foo() check(obj.display) #arg是一个方法
class foo(object): country = "中国" def func(self): pass v = getattr(foo,'func') # foo.func # 根据字符串为参数,去类中寻找与之同名的成员。 print(v) #<function foo.func at 0x000001e1a557d8c8> obj = foo() v = getattr(obj,"func") # obj.func # 根据字符串为参数,去对象中寻找与之同名的成员。 print(v) #<bound method foo.func of <__main__.foo object at 0x000001e1a5579f28>>
a = 123 class foo(object): country = "中国" def func(self): pass v2 = hasattr(foo,"a") #判断foo中是否有a成员 v3 = hasattr(foo,'country') #判断foo中是否有country成员 v4 = hasattr(foo,"func") #判断foo中是否有func成员 v5 = hasattr(foo,'xxxxxxx') print(v2,v3,v4,v5) # false true true false
# 根据字符串的形式,动态的设置一个成员(内存) x1 = 123 class foo: def f1(arg): print(arg,666) setattr(foo,'x2',999) v1 = getattr(foo,'x2') print(v1) #999
x1 = 123 class foo: def f1(arg): print(arg,666) delattr(foo,'x1') v9 = getattr(foo,'x1') print(v9)
class account(object): func_list = ['login', 'logout', 'register'] def login(self): """ 登录 :return: """ print('登录111') def logout(self): """ 注销 :return: """ print('注销111') def register(self): """ 注册 :return: """ print('注册111') def run(self): """ 主代码 :return: """ print(""" 请输入要执行的功能: 1. 登录 2. 注销 3. 注册 """) choice = int(input('请输入要执行的序号:')) func_name = account.func_list[choice-1] func = getattr(self, func_name) # self.login func() obj1 = account() obj1.run() obj2 = account() obj2.run()
def func(): pass class foo(object): def __call__(self, *args, **kwargs): pass def func(self): pass obj = foo() print(callable(func)) print(callable(foo)) print(callable(obj)) print(callable(obj.func))
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
新手学习Python2和Python3中print不同的用法
Python基于os.environ从windows获取环境变量
网友评论