Python中类的成员变量如何设置
时间: 2023-11-05 22:00:24 浏览: 44
在Python中,类的成员变量可以通过在类中定义属性来设置。
属性可以分为类属性和实例属性。
类属性是属于类的,所有实例共享这个属性,可以通过类名或者实例来访问,一般用于描述类本身的特征。
实例属性是每个实例单独拥有的属性,每个实例的属性值可以不同,只能通过实例来访问,一般用于描述实例自身的特征。
下面是一个示例代码:
```python
class Person:
count = 0 # 类属性
def __init__(self, name, age):
self.name = name # 实例属性
self.age = age
Person.count += 1 # 计数器加1
def say_hello(self):
print("Hello, my name is", self.name)
p1 = Person("Alice", 20)
p2 = Person("Bob", 22)
print(p1.name) # Alice
print(p2.name) # Bob
print(Person.count) # 2
```
在这个例子中,count是一个类属性,用于记录创建了多少个Person实例。在每次创建新实例时,都会将count加1。name和age是实例属性,每个实例单独拥有。say_hello是一个实例方法,可以访问实例属性self.name。
相关问题
python 类变量 成员变量
Python中的类变量是在类定义中声明的变量,它们被所有类的实例共享。而成员变量是在类的方法中使用 self 关键字声明的变量,它们是每个类实例独有的。
类变量可以在类的任何方法之外声明,它们通常用于存储与整个类相关的数据。类变量可以通过类名或类的实例访问。例如:
```python
class MyClass:
class_variable = 10
def __init__(self):
self.instance_variable = 20
def print_variables(self):
print("Class variable:", MyClass.class_variable)
print("Instance variable:", self.instance_variable)
# 访问类变量
print(MyClass.class_variable)
# 创建类实例并访问成员变量
obj = MyClass()
print(obj.instance_variable)
# 调用实例方法访问类变量和成员变量
obj.print_variables()
```
输出结果为:
```
10
20
Class variable: 10
Instance variable: 20
```
在上面的示例中,`class_variable` 是一个类变量,`instance_variable` 是一个成员变量。
python获取类成员变量
在 Python 中,可以通过以下方式获取类的成员变量:
1. 使用点号(.)访问成员变量:
```python
class MyClass:
def __init__(self, x):
self.x = x
my_obj = MyClass(10)
print(my_obj.x) # 输出 10
```
2. 使用 `getattr()` 函数获取成员变量:
```python
class MyClass:
def __init__(self, x):
self.x = x
my_obj = MyClass(10)
print(getattr(my_obj, 'x')) # 输出 10
```
3. 使用 `vars()` 函数获取类的成员变量:
```python
class MyClass:
def __init__(self, x):
self.x = x
my_obj = MyClass(10)
print(vars(my_obj)) # 输出 {'x': 10}
```
需要注意的是,如果成员变量是私有变量,即使用了双下划线开头的变量名,需要使用类的名称来访问变量。例如:
```python
class MyClass:
def __init__(self, x):
self.__x = x
my_obj = MyClass(10)
print(my_obj._MyClass__x) # 输出 10
```