【发布时间】:2020-03-05 20:25:55
【问题描述】:
我正在使用更多基于类的程序,但是在某些情况下,将所有 self.paramets 提供到一个类中并不方便。 在这些情况下,我想在类中的函数中使用常规输入。我想出了一种实现两种输入的方法,让我在下面的脚本中展示它:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(a):
if (type(a) == str):
name = a
else:
name = a.name
print("Hello my name is " + name)
p1 = Person("John", 36)
p1.myfunc()
print("---------------------")
Person.myfunc("Harry")
输出:
Hello my name is John
---------------------
Hello my name is Harry
首先,名称由类 self.params 初始化。 其次,名称在类中的方法中作为字符串提供。 所以需要进行类型检查。
但是我不认为这是一个干净的方法,因为当我有超过 30 个方法时,我需要再次实现这些类型检查,包括即将出现的类型错误结果。
有人知道更好的方法吗?
【问题讨论】:
标签: python python-3.x class methods types