Python中请教一个关于getattr函数使用的问题,感谢!
class A:
def init(self):
self.name = ‘test’
def method(self):
print(“method print”)
Instance = A()
print(getattr(A, ‘method’, ‘default’)())
上面这段代码输出如下,请问要怎么修改才能使得 print 语句可以显示 method 函数的执行结果呢?谢谢
Traceback (most recent call last):
File “d:\Python3\t1.py”, line 9, in
print(getattr(A, ‘method’, ‘default’)())
TypeError: method() missing 1 required positional argument: 'self’
Python中请教一个关于getattr函数使用的问题,感谢!
帖子内容呢?没看到具体问题啊。
getattr 是 Python 的内置函数,用来获取对象的属性值,语法是:
getattr(object, name[, default])
object:要获取属性的对象name:属性名的字符串default:可选,属性不存在时返回的默认值,不提供且属性不存在时会抛AttributeError
举个例子:
class MyClass:
value = 42
obj = MyClass()
print(getattr(obj, 'value')) # 输出 42
print(getattr(obj, 'value', 100)) # 输出 42(属性存在,忽略默认值)
print(getattr(obj, 'unknown', 100)) # 输出 100(属性不存在,返回默认值)
print(getattr(obj, 'unknown')) # 抛出 AttributeError
常见用途是动态调用方法或属性,比如根据字符串名称执行不同方法:
class Processor:
def process_a(self):
return 'A'
def process_b(self):
return 'B'
p = Processor()
method_name = 'process_a'
func = getattr(p, method_name)
print(func()) # 输出 'A'
如果你有具体的代码场景或报错,贴出来我帮你看看。
给楼主贴一段代码吧
#!/usr/bin/python
class test:
def method(self):
print(‘hello world’)
a=test()
print(getattr(a,‘method’,‘default’)())
print(getattr(test,‘method’,‘default’)())
输出结果
hello world
None
Traceback (most recent call last):
File “/usercode/file3.py”, line 8, in <module>
print(getattr(test,‘method’,‘default’)())
TypeError: method() missing 1 required positional argument: 'self’
楼主你自己的代码需要传递实例

