
Python 包含静态类数据和静态类方法的概念。
在这里,为静态类数据定义一个类属性。如果您想为属性分配新值,请在分配中显式使用类名 -
class Demo:
count = 0
def __init__(self):
Demo.count = Demo.count + 1
def getcount(self):
return Demo.count
我们还可以返回以下内容,而不是返回 Demo.count -
return self.count
在 Demo 的方法中,像 self.count = 42 这样的赋值会在 self 自己的字典中创建一个名为 count 的新的、不相关的实例。类静态数据名称的重新绑定必须始终指定类,无论是否在方法内部 -
立即学习“Python免费学习笔记(深入)”;
Demo.count = 314
让我们看看静态方法是如何工作的。静态方法绑定到类而不是类的对象。 statis 方法用于创建实用函数。
静态方法无法访问或修改类状态。静态方法不知道类状态。这些方法用于通过获取一些参数来执行一些实用任务。
请记住,@staticmethod 装饰器用于创建静态方法,如下所示 -
class Demo:
@staticmethod
def static(arg1, arg2, arg3):
# No 'self' parameter!
...
让我们看一个完整的例子 -
from datetime import date
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
# A class method
@classmethod
def birthYear(cls, name, year):
return cls(name, date.today().year - year)
# A static method
# If a Student is over 18 or not
@staticmethod
def checkAdult(age):
return age > 18
# Creating 4 objects
st1 = Student('Jacob', 20)
st2 = Student('John', 21)
st3 = Student.birthYear('Tom', 2000)
st4 = Student.birthYear('Anthony', 2003)
print("Student1 Age = ",st1.age)
print("Student2 Age = ",st2.age)
print("Student3 Age = ",st3.age)
print("Student4 Age = ",st4.age)
# Display the result
print(Student.checkAdult(22))
print(Student.checkAdult(20))
Student1 Age = 20 Student2 Age = 21 Student3 Age = 22 Student4 Age = 19 True True
以上就是如何在Python中创建静态类数据和静态类方法?的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号