范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

python类属性实例属性类方法实例方法,静态方法

  1、类属性:属于类本身而不是类的实例。可以  使用类名或者实例名  来访问。对于所有的实例来说,  类属性的值是相同的,且在类的所有实例中是共享的  。  class Professor:     # 类属性     department = "Computer Science"      # 实例属性     def __init__(self, name, age):         self.name = name         self.age = age      # 实例方法     def introduce(self):         print(f"Hello, my name is {self.name}, and I am {self.age} years old.")  # 访问类属性 print(Professor.department)  # "Computer Science"  # 创建教授对象 prof = Professor("John Smith", 40)  # 访问类属性 print(prof.department)  # "Computer Science"
  在上面的代码中,我们使用类名或者实例名来访问department类属性,两种方式都可以得到相同的结果,即"Computer Science"。
  2、实例属性:属于类的实例,只能通过实例名来访问。对于每个实例来说,  实例属性的值是不同的,且在不同实例中是不共享的。  class Professor:     # 类属性     department = "Computer Science"      # 实例属性     def __init__(self, name, age):         self.name = name         self.age = age      # 实例方法     def introduce(self):         print(f"Hello, my name is {self.name}, and I am {self.age} years old.")  # 创建教授对象 prof1 = Professor("John Smith", 40) prof2 = Professor("Mary Brown", 35)  # 访问实例属性 print(prof1.name)  # "John Smith" print(prof2.name)  # "Mary Brown"
  在上面的代码中,我们创建了两个不同的  教授对象prof1和prof2,分别将它们的name属性设置为John Smith和Mary Brown。通过实例名来访问实例属性  。
  3、类方法:与类本身相关的方法,  使用@classmethod装饰器来定义  。类方法的第一个参数通常为  cls,表示类本身,可以使用类名或者实例名来调用,  类方法可以访问和修改类属性,但不能访问实例属性  。  class Professor:     # 类属性     department = "Computer Science"      # 实例属性     def __init__(self, name, age):         self.name = name         self.age = age      # 实例方法     def introduce(self):         print(f"Hello, my name is {self.name}, and I am {self.age} years old.")      # 类方法     @classmethod     def change_department(cls, new_dept):         cls.department = new_dept  # 访问类属性 print(Professor.department)  # "Computer Science" prof1 = Professor("John Smith", 40) prof2 = Professor("Jane Doe", 35) # 调用类方法# 调用类方法来修改类属性 Professor.change_department("Mathematics")   print(prof1.department)  # Mathematics print(prof2.department)  # Mathematics
  在上面的代码中,我们使用类名  调用了change_department类方法  ,  将department类属性的值从"Computer Science"修改为"Mathematics"。  可以发现,这个修改是在所有的  实例中都  生效的。
  4、实例方法:与类的实例相关的方法,使用类中的方法来定义,第一个参数通常为  self  ,表示调用该方法的实例。  只能使用实例名来调用  class Professor:     # 类属性     department = "Computer Science"      # 实例属性     def __init__(self, name, age):         self.name = name         self.age = age      # 实例方法     def introduce(self):         print(f"Hello, my name is {self.name}, and I am {self.age} years old.")      # 类方法     @classmethod     def change_department(cls, new_dept):         cls.department = new_dept      # 实例方法     def retire(self):         print(f"{self.name} is retiring.")         self.age = 65  # 创建教授对象 prof = Professor("John Smith", 40)  # 调用实例方法 prof.retire()  # "John Smith is retiring." print(prof.age)  # 65
  在上面的代码中,我们调用了  retire实例方法,将prof对象的age属性从40修改为65  。只能使用实例名来调用实例方法
  5、静态方法(staticmethod),它与类和实例都没有直接的关联,它们只是存在于类的命名空间中。静态方法是使用@staticmethod装饰器来定义的,它没有默认的参数,也不需要使用cls或self参数。  静态方法主要用于 与类相关的工具函数 ,它们没有默认的参数, 也不需要使用cls或self参数。 在使用时,我们可以 使用类名或实例名来调用静态方法 ,而不需要创建实例对象。静态方法可以访问类属性,但不能访问实例属性,因为它们没有cls或self参数。
  eg.1 以教授类例子中,我们可以定义一个静态方法来计算两个教授之间的年龄差距。  class Professor:     # 类属性     university = "MIT"      def __init__(self, name, age, title, department):         # 实例属性         self.name = name         self.age = age         self.title = title         self.department = department      def greet(self):         print(f"Hello, my name is {self.name}.")      @staticmethod     def distance(prof1, prof2):         # 计算两个教授之间的距离         return abs(prof1.age - prof2.age)  # 创建两个教授对象 prof1 = Professor("John Smith", 50, "Professor", "Computer Science") prof2 = Professor("Alice Johnson", 45, "Associate Professor", "Electrical Engineering")  # 调用静态方法计算两个教授之间的距离 distance = Professor.distance(prof1, prof2) print(f"The distance between {prof1.name} and {prof2.name} is {distance} years.")
  我们定义了一个distance静态方法,它接受两个教授对象作为参数,并计算它们之间的年龄差。该方法与教授类相关,但不依赖于类的实例,因此我们使用静态方法来实现。我们可以使用类名来调用该方法,例如Professor.distance(prof1, prof2)。由于该方法没有访问实例属性,因此不需要使用self参数。
  eg.2以教授为例,如何使用类名或实例名来调用静态方法。
  假设我们已经定义了一个教授类Professor,并且在该类中定义了一个静态方法calculate_salary,用于计算教授的工资  class Professor:     # 类属性     university = "MIT"      def __init__(self, name, age, title, department, salary):         # 实例属性         self.name = name         self.age = age         self.title = title         self.department = department         self.salary = salary      def greet(self):         print(f"Hello, my name is {self.name}.")      @staticmethod     def calculate_salary(salary):         # 计算教授的工资         tax_rate = 0.2  # 税率为20%         tax = salary * tax_rate         return salary - tax # 使用类名调用静态方法 #XXXXXXXXXXXXXXXXXXXXXXXXXXXX salary = Professor.calculate_salary(100000) print(f"The actual salary is {salary}.") # 使用实例名调用静态方法 #XXXXXXXXXXXXXXXXXXXXXXXXXXXX # 创建一个教授实例 professor = Professor("John Smith", 50, "Professor", "Computer Science", 120000) salary = professor.calculate_salary(120000) print(f"The actual salary is {salary}.")
  A、使用Professor.calculate_salary(100000)来调用静态方法,计算工资为100000的教授的实际工资,  B、创建了一个教授实例professor,然后使用professor.calculate_salary(120000)来调用静态方法,计算该教授的实际工资。由于静态方法不依赖于类的实例,因此我们可以使用实例名或类名来调用该方法,两者的效果是一样的。
  总之,静态方法可以使用类名或实例名来调用,两者的效果是一样的。在某些情况下,使用实例名调用静态方法可能更加直观和易于理解。
  6、静态方法主要与类相关的工具函数
  6.1 工具函数:比如math库中的sqrt()方法,用于计算平方根。可以定义一个类方法,用于计算多个数的平方根。  import math  class Calculator:     @staticmethod     def calculate_squares(*args):         squares = []         for num in args:             squares.append(math.sqrt(num))         return squares  print(Calculator.calculate_squares(16, 25, 36)) # [4.0, 5.0, 6.0]
  6.2 创建辅助实例或对象:比如创建配置对象,可以定义一个静态方法,用于根据给定的配置文件路径,返回一个配置对象。  class Config:     def __init__(self, config_path):         # Load and parse the configuration file         pass      # Instance method to get a configuration value     def get_value(self, key):         # Return the value of the given key         pass      @staticmethod     def load_from_file(config_path):         return Config(config_path)  config = Config.load_from_file("config.ini") value = config.get_value("key")
  6.3管理或访问类的状态:比如跟踪类实例的数量,可以定义一个静态属性来记录类实例的数量,再定义一个静态方法,用于返回实例数量。  class Person:     instance_count = 0      def __init__(self, name):         self.name = name         Person.instance_count += 1      @staticmethod     def get_instance_count():         return Person.instance_count  person1 = Person("Alice") person2 = Person("Bob") print(Person.get_instance_count()) # 2

2000多万买个烟壶,住上亿豪宅利息花不完,赵本山儿子有多富?说起赵本山相信大家再熟悉不过了,很多人都是看着他的小品长大的,他的作品给无数人带来了欢乐。现在赵本山已经很少出现在荧幕上,更多的是陪伴在家人身边。很多人都知道赵本山的女儿球球是个短女排世锦赛又爆大冷门!日本队31绝杀对手仍大有希望,巴西首败北京时间9月30日,女排世锦赛小组赛来到第七天的争夺,D组第一目前仍然是中国队,因为刚刚30零封捷克4连胜提前锁定16强,明天中国队还有小组赛最后一个劲敌巴西,如果拿下,中国队将提危机升级!中国房地产大救市?首套房利率再下调,卖房也拿补贴?中国最新一轮的房地产大救市来了?最近房地产连续出台了多重利好政策,预示着新一轮房地产救市政策的来袭,这无疑为目前低迷的地产市场注入了一剂强心针。房地产三大利好来袭!而最新的利好政策2年5800万!湖人得到6届全明星?巴特勒高兴詹姆斯分忧者有了?季后赛首轮对老鹰。巴特勒场均30。5分7。8篮板5。3助攻,三项命中率54。343。879。4。季后赛半决赛对76人。巴特勒场均27。5分7。7篮板5。5助攻,三项命中率51。332022年最值得购买的三款手机,内行人强烈推荐,跟着选不吃亏如果你不知道购买哪款手机比较好的话,不妨看看下面这三款手机,内行人都推荐,跟着选不吃亏。第一款红米Note11TPro如果你预算不多的话,不妨看看这款手机,首发价不到两千就能入手,直播间里超便宜的大牌护肤品,真的可以买吗?谁曾想,让我欲罢不能通宵追的不是韩剧欧巴,而是直播卖货呲牙一次手滑点进,再也不曾退出,是套路?骗局?还是太香了?大牌护肤品白菜价?就问你慌不慌兰蔻眼霜拼夕夕直播价27。99元,某东吹卷发技巧(三)1问为什么在吹大花时,梳子卷上后,不易取下来?答从发尾向上卷时手的平衡度不稳,造成一边高一边低,张力不均匀,头发会交错在一起另一种原因是向上卷的时候张力较紧,速度感不一致,导致圈与戴美瞳会把泪膜一分为二?!这些真相你可能还不知道美瞳算是女性日常生活中最常见的物品之一,什么魅惑电瞳明星同款眼珠子,听起来就很有诱惑力,它也确实能让眼睛看上去更漂亮,但是前几天一则略惊悚的新闻吸引了我的注意。新闻截图什么是泪膜,秋季出游穿搭男生自带运动休闲风的棒球领夹克可以算得上是秋日的最佳搭配单品,不用过多修饰就能时髦有腔调,轻松呈现出减龄与活力。两者都可以发挥出提亮服饰和提升气质的作用很适合黄黑皮男生,轻松塑造出时髦哈兰德用积分系统决定曼城转会,曼联甚至不在名单上埃尔林哈兰德(ErlingHaaland)使用OPE积分系统来确定曼城是他最好的转会选择,而曼联甚至都不在名单上。前锋与欧洲各地的俱乐部联系仔细考虑了几个选项以5100万英镑的价格马尔康称赞武汉三镇按时发薪发奖金,全队深受其益中超联赛经过了接近20年的发展,已经证明了一件事,成功的俱乐部并不是那些实力强大能够夺冠的,而是能够长久稳定运营下去的。江苏队辽足这些球队虽然有过辉煌的时期,但是最终难逃解散的命运
电子皮肤机器人行业的突破性技术近年来,随着机器人技术的不断发展,电子皮肤也逐渐成为了机器人行业的热门话题。电子皮肤是一种被用于机器人医疗器械等应用的薄膜式电子材料。它具有灵敏度高可柔性折叠可适应不同形状的特点。惠州市人大代表杨华坚持制造业当家,为企业发展释放强烈信号点击查看专题报道当前,整个市场经济形势向好,我们通过不断拓宽产品边界,完善产品矩阵,重研发增强企业竞争力。惠州市人大代表惠州铂科磁材有限公司经营委员会副主席杨华表示,近年来,在政府我国代表性婴幼儿膳食调查数据首次发布本报记者韩松妍周岩婴幼儿期营养是全生命周期健康的基础,膳食营养摄入不足或过多是营养不良的主要原因。近日,中国疾病预防控制中心营养与健康所首次报告了十三五科技部基础资源调查专项中国0温福铁路宁德站和罗源站宁德站位于宁德市东侨经济技术开发区漳湾镇土尾村,站台规模2台6线(截止2008年3月),投用时间2009年6月30日。主要铁路温福铁路和衢宁铁路。宁德的宁德时代非常著名,宁德时代是赣锋锂业基本面分析(报告节选)全面剖析竞争力报告目录一公司业务分析1概述赣锋锂业2000年成立2010年上市,因坐落于江西而将公司命名为赣锋,主营业务为锂电池上游的锂化合物金属锂。创始人为技术出身,以工业级金属锂起家,后不断惠州市政协委员卢修学打造企业风险投资创新中心,充分激发中小企业创新活力点击查看专题报道中小微企业是制造业高质量发展的重要基础。今年的惠州市政府工作报告提出,要推动形成大型企业顶天立地中型企业承天启地小型企业铺天盖地的良好生态。为充分中小微企业创新活力一周定增融资润丰股份福鞍股份兴源环境王子新材等拟募资超10亿记者尹靖霏编辑2023年兔年第一周,A股市场上,有9家上市公司发布定增预案,润丰股份(301035。SZ)欲募资25。5亿元,兴源环境(300266。SZ)欲募12亿元,王子新材(2022年完成年度销量目标的经销商仅19。4大河报豫视频记者祁驿2月6日,中国汽车流通协会发布2022年全国汽车经销商生存状况调查报告。调查显示,完成年度销量目标的经销商占比为19。4,42。2经销商完成了年任务指标的80以35岁程序员的最佳选择不是转行业插叙一个39岁程序员的面试谈及这个话题之前,先说说今天的一个面试,一个39岁的程序员。其他公司的员工来参与我们公司的一个项目,不是入职。今天帮助公司做了一个应聘者的技术面试。该应聘没钱还要收购舒客品牌母公司,两连板倍加洁股价调整记者胡振明编辑两连板后,2月7日早盘,倍加洁(603059。SH)股价触及近12个月新高25。47元股之后,出现了大幅的波动调整,交易量仍明显放大。2月6日晚间,倍加洁披露股票交易四川绵阳市委领导走访调研在绵台资企业四川绵阳市委领导走访调研在绵台资企业(图片来源绵阳市台办)中国台湾网2月7日讯近日,绵阳市委常委秘书长统战部部长姚永红一行赴绵阳高新区台企绵阳普思电子有限公司调研。市委统战部市台办