0

次の Java コード スニペットを Python に変換しようとしています。誰かがこれで私を助けてくれませんか。私はPythonが初めてです。

Java コード:

public class Person
{
public static Random r = new Random();
public static final int numFriends = 5;
public static final int numPeople = 100000;
public static final double probInfection = 0.3;
public static int numInfected = 0;

/* Multiple experiments will be conducted the average used to
   compute the expected percentage of people who are infected. */
private static final int numExperiments = 1000;

/* friends of this Person object */
private Person[] friend = new Person[numFriends]; ----- NEED TO REPLICATE THIS IN PYTHON 
private boolean infected;
private int id;

上記のマークされた行の同じアイデアを Python に複製しようとしています。誰かが「private Person[] friend = new Person[numFriends];」に変換してくれませんか? Pythonへの実装。コードスニペットを探しています...ありがとう

4

1 に答える 1

1

Python の固定長配列に相当するものを知りたいと思われます。そのようなことはない。その必要はなく、そのようにメモリを事前に割り当てることはできません。代わりに、空のリスト オブジェクトを使用してください。

class Person(object):
    def __init__(self, name):
        self.name = name
        self.friends = []

次に、次のように使用します。

person = Person("Walter")
person.friends.append(Person("Suzie"))       # add a friend
person.friends.pop(0)                        # remove and get first friend, friends is now empty
person.friends.index(Person("Barbara"))      # -1, Barbara is not one of Walter's friends

これは基本的に、Java の List< T > のように機能します。

ああ、Python にはアクセス修飾子 (private、public など) がありません。言うまでもなく、すべてが公開されています。

于 2013-01-13T20:38:12.643 に答える