print(f"当前类名:{class_name}") print(f"当前方法名:{method_name}") class MyClass: def my_method(self): # 获取当前类名 current_class_name = type(self).__name__ # 获取当前方法名 current_method_name = inspect.currentframe().f_code.co_name # 输出类名与方法名 log_class_and_method(...
上述代码中,我们定义了一个名为Student的class,它有一个构造函数__init__,用于初始化name和age属性。我们还重写了__str__方法,该方法在使用print函数打印对象时会被调用。在__str__方法中,我们使用了字符串格式化功能,将name和age属性的值拼接成一个字符串,并返回。 通过上述代码,我们可以创建一个Student对象,...
defcalculate_sum(*args):returnsum(args)print(calculate_sum(1,2,3,4,5))# 输出15defprint_info(**kwargs):forkey,valueinkwargs.items():print(f"{key}: {value}")print_info(name="Alice",age=25,city="New York")# 输出 # name:Alice # age:25# city:New York 在calculate_sum函数中,*a...
importinspectdefget_current_function_name():returninspect.stack()[1][3]classMyClass:deffunction_one(self):print"%s.%s invoked"%(self.__class__.__name__, get_current_function_name())if__name__=="__main__": myclass=MyClass() myclass.function_one() 运行结果: MyClass.function_one i...
由于使用了@dataclass装饰器 ,__init__方法会被自动创建。这意味着你可以像初始化普通类一样初始化数据类: hero = RPGCharacter("Alice", 5) print(hero) # 输出: RPGCharacter(name='Alice', level=5)2.2.2 初始化参数的验证与转换 若想在初始化过程中对传入的参数进行验证或转换,可以通过field()中的met...
class myThread(threading.Thread): def__init__(self,threadID,name,counter): threading.Thread.__init__(self) self.threadID=threadID self.name=name self.counter=counter defrun(self): print("开启线程:"+self.name) #获取锁,用于线程同步 threadLock.acquire() print_time(self.name,self.counter,...
1classFoo:2def__init__(self):3self.name ='a'45defbar(self):6print('bar')78@property #通过property装饰器9defper(self):#属性: 伪造成方法,但访问的时候使用的是字段的方式10print('per')1112obj =Foo()13obj.per 利用 属性 完成分页的功能: ...
_(self,value):print("这是__init__方法")self.value=value# 在这里初始化对象的属性obj=MyClass(...
4*"| | |\n"input("".join(2*[a1,a2,a3]+[a1]))#使用print()函数输出田字格print()
48. Python语句print(type((1,2,3,4)))的结果是(A) <class 'tuple'> <class 'dict'> <class 'set'> <class 'list'> 5Python语句print(type([1,2,3,4]))的输出结果是 <class 'tuple'> <class 'dict...