Python类常量

2 投票
2 回答
2427 浏览
提问于 2025-04-17 14:45

为了完成作业,我正在用Python重新实现一个socket类。不过,我对Python不是很熟悉。我有一个关于语法的问题。

在Python的API中,当你定义一个socket时,你会使用:

import socket
mySocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM))

但是,我不知道怎么定义像AF_INET和SOCK_DGRAM这样的常量。

import mySocket
mySocket = mySocket.socket(mySocket.AF_INET,mySocket.SOCK_DGRAM))

这会出现以下错误:

Undefined variable from import: AF_INET
Undefined variable from import: SOCK_DGRAM

我现在的mySocket类看起来是这样的:

class socket:
    AF_INET;
    SOCK_DGRAM;

    def socket(.....

2 个回答

3

这些常量是模块级别的:

module1.py

CONSTANT1 = 'test'

class YourClass(object):
    class_variable = 12

module2.py

import module1

print module1.CONSTANT1
4

你需要在模块级别定义常量,而不是在你的 socket 类里面定义:

AF_INET = 2
SOCK_DGRAM = 2

class socket:
    def __init__(.....

撰写回答